I’m happy to announce that Jira Cloud webhooks have recently become much more resilient. We’ve rolled out a new retry mechanism that repeats failed requests.
Retries are attempted when any of the following are true:
- the callback server returns any of the following status codes: 408, 409, 425, 429, 5xx.
- the connection fails or times out.
This means that:
- some webhooks might be delivered more than once (if the delivery acknowledgment fails).
- webhooks might be delivered later than usually (up to 30 minutes, subject to change).
- you might need to modify your integrations to take this into account (e.g. check the webhook timestamp or the special retry header, more on which in the next paragraph).
X-Atlassian-Webhook-Retry header with the current retry count is included with webhooks that have been retried. We recommend monitoring this header and cross-referencing it with the callback server logs to stay on top of any unexpected reliability problems.
We hope this will allow you to fully rely on webhooks without the need of resorting to periodical polling.
See the official documentation here: https://developer.atlassian.com/cloud/jira/platform/webhooks/#retry-policy