Safeguard
Developer Tools•

Why did my Jira webhook stop firing? A troubleshooting checklist

Jira webhooks can stop for known reasons: dynamic webhook expiry, throttling after failures, bad endpoints and filter gaps. A step by step check.

Safeguard Security Team
3 min read

When a Jira Cloud webhook goes quiet, check four things in order: whether a dynamic webhook expired, whether your receiver failed long enough to be throttled, whether the endpoint meets Jira's requirements, and whether your filter excludes the event.

1. Did a dynamic webhook expire?

Atlassian documents that webhooks registered through the REST API for Connect and OAuth 2.0 apps expire 30 days after creation or after a refresh through the extend-life endpoint, and remain available for up to three months after expiry. If your automation registered a webhook once and never refreshed it, this is the most common cause. Fix: schedule a refresh well inside the 30 days and alert when a refresh fails.

2. Was your receiver failing?

Jira treats only a 200 response as success. It retries on 408, 409, 425, 429, 5xx, connection failures and timeouts, up to five times with randomized back-off of 5 to 15 minutes. If a recipient fails for 30 minutes, Jira limits it to one attempt per webhook until a delivery succeeds. A short outage or a slow deploy can therefore leave you with a gap. Fix: answer fast, queue work, and use the "get failed webhooks" operation to see what was not delivered.

3. Does the endpoint meet requirements?

  • HTTPS only, with a certificate from a globally trusted authority.
  • At most 5 redirects.
  • Port 80 is not allowed. Allowed ports include 443 and 8443.
  • Payloads over 25 MB are not delivered.

A certificate that expired overnight will stop delivery silently from your point of view.

4. Does your filter exclude the event?

JQL filtering applies to issue, issue property, worklog, comment and attachment events. Sprint and version events ignore JQL filters. Check the JQL against a sample issue. Also note the documented known issues, such as attachments added in the create dialog not triggering a separate attachment event, though they appear in the issue created payload.

Table of symptoms

SymptomLikely cause
Worked for about a month, then nothingDynamic webhook expired
Gap after your deployReceiver errors, retries exhausted
Never fires for certain issuesJQL filter
Never fires at all after a changeCertificate, port or redirect rule
Duplicates after recoveryNormal retry, dedupe on the webhook identifier header

Make it harder to go silent

Add a heartbeat: if no event arrives within a window that is normal for your project, raise an internal alert. Also run a reconciliation poll as described in webhook or polling.

Quick check

How do I detect a duplicate Jira delivery?

Jira documents an identifier header that stays the same across retries. Store it and ignore repeats.

Why did my webhook work for a month and then stop?

If it was registered dynamically, it expires 30 days after creation or last refresh. Refresh it on a schedule.

Safeguard includes compliance and evidence automation, with a free scan at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.