I am encountering an issue where a Jira Cloud webhook fails to send any event to the target even though the registration is successful without any errors. I suspect this might be a bug or a misconfiguration on my end, and I would appreciate any insights from the community.
Registering a Webhook manually via the Jira Admin Dashboard does triggers the webhook and IS WORKING.
Steps to Reproduce:
- Register a Webhook:
- Using the endpoint: POST
https://api.atlassian.com/ex/jira/{{jira-cloud-id}}/rest/api/3/webhook
- Payload:
- Using the endpoint: POST
{
"url": "https://my-app-url.com/api/v1/integrations/jira/webhooks",
"webhooks": [
{
"events": [
"jira:issue_created",
"jira:issue_updated"
],
"jqlFilter": "status = '*'"
}
],
"secret": "MY_RANDOM_SECRET"
}
- Response:
{
"webhookRegistrationResult": [
{
"createdWebhookId": 39
}
]
}
- List Registered Webhooks:
- Using the endpoint: GET
https://api.atlassian.com/ex/jira/{{jira-cloud-id}}/rest/api/3/webhook
- Response:
- Using the endpoint: GET
{
"maxResults": 100,
"startAt": 0,
"total": 1,
"isLast": true,
"values": [
{
"id": 39,
"jqlFilter": "status = '*'",
"events": [
"jira:issue_updated",
"jira:issue_created"
],
"expirationDate": "2025-07-05T11:19:49.146+0530",
"url": "https://my-app-url.com/api/v1/integrations/jira/webhooks"
}
]
}
- Attempt to Extend Webhook:
- Using the endpoint: PUT
https://api.atlassian.com/ex/jira/{{jira-cloud-id}}/rest/api/3/webhook/refresh
- Payload:
- Using the endpoint: PUT
{
"webhooks": [39]
}
Additional Context:
- App Setup: This is an OAuth2 (3LO) app configured in the Atlassian Developer console. The callback URL is set to
https://api.my-app-url.com/api/v1/auth/atlassian-oauth2/callback
, so the base URL of my app ismy-app-url.com
. - Webhook URL Issue: I noticed the webhook URL (
my-app-url.com
) differs from my app’s base URL (my-app-url.com). The docs state the webhook URL must use the same base URL as the app, so this might be related. - JQL Filter: I used jqlFilter:
status = Done
to apply the webhook to all issues. - Authentication: I am using an OAuth2 token, and I believe it has the necessary scopes (manage:jira-webhook), as the registration succeeds.
- Environment: Jira Cloud, tested as of June 5, 2025.
What I have Tried:
- Ensured the webhook URL uses HTTPS and is accessible.
- Attempted to extend the webhook using the PUT
/rest/api/3/webhook/refresh
endpoint, but it had no effect. - Reviewed the docs (Webhooks, Jira Cloud REST API Webhooks), but couldn’t find a clear reason for this behavior.
- Registering a Webhook manually from the Jira Admin Dashboard does triggers the webhook and IS WORKING.
Logs/Additional Info:
- I can provide more details on the extend API response if needed, but it didn’t return any errors, it just did not update the expiration.
- My webhook endpoint (my-app-url.com) is accessible and returns HTTP 200 for test requests, but I haven’t seen any incoming requests from Jira.