-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Low
-
Affects Version/s: 10.1.1, 11.0.0
-
Component/s: Webhooks
-
10.01
-
6
-
Severity 3 - Minor
-
0
Issue Summary
This is reproducible on Data Center: (yes)
adding version.id context parameter in a webhook can cause java.lang.IllegalArgumentException if the webhook is trigger with non-version event.
Steps to Reproduce
- Create a webhook with context parameter like https://example.com/webhook?version=\{version.id}&issue={issue.id}
- Add issue events and version events (issue created, updated, version created, updated)
- update or create an issue in Jira which should trigger the webhook
Expected Results
The webhook should fire successfully, since the trigger wasn't version related, version.id should be empty and we should receive a webhook like this.
https://example.com/webhook?version=&issue=<ISSUE_ID>
Actual Results
The webhook isn't sent. And, in atlassian-jira.log we see the below exception:
2025-02-07 01:58:19,774+0000 ForkJoinPool.commonPool-worker-5 WARN [c.a.w.internal.publish.DefaultWebhookDispatcher] Webhook invocation [10ad514a-0837-474d-882d-f979d1a5ce9a] to [https://webhook-tester.dev.services.atlassian.com/nfarhad?version={version.id}&issue={issue.key}] failed with an error java.lang.IllegalArgumentException: Illegal character in query at index 66: https://webhook-tester.dev.services.atlassian.com/nfarhad?version={version.id}&issue=FSP-2 at java.base/java.net.URI.create(URI.java:906) at com.atlassian.webhooks.internal.client.request.RawRequest.getUrl(RawRequest.java:95) at com.atlassian.webhooks.internal.client.request.DefaultRequestExecutor.execute(DefaultRequestExecutor.java:57) at com.atlassian.webhooks.internal.publish.DefaultWebhookDispatcher.dispatch(DefaultWebhookDispatcher.java:84) at com.atlassian.webhooks.internal.DefaultWebhookService.lambda$publish$9(DefaultWebhookService.java:288) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at com.atlassian.webhooks.internal.DefaultWebhookService.lambda$publish$10(DefaultWebhookService.java:285) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.net.URISyntaxException: Illegal character in query at index 66: https://webhook-tester.dev.services.atlassian.com/nfarhad?version={version.id}&issue=FSP-2 at java.base/java.net.URI$Parser.fail(URI.java:2976) at java.base/java.net.URI$Parser.checkChars(URI.java:3147) at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3235) at java.base/java.net.URI$Parser.parse(URI.java:3177) at java.base/java.net.URI.<init>(URI.java:623) at java.base/java.net.URI.create(URI.java:904) ... 9 more
Instead of expanding version.id to an empty value, the webhook tries to send *
{version.id}This affects Jira version 10. Versions <10 aren't affected. As a workaround, we can create separate webhooks and only have version events as triggers when using version.id context parameter.
- relates to
-
JRASERVER-78855 Confusing UI on webhook create/edit administrative view
-
- Gathering Impact
-
-
JRASERVER-68086 As an Admin, the webhooks UI does not clearly show which variables I can use within a URL
- Gathering Interest
-
JRASERVER-68087 As an Admin, I'd like for webhook events to more consistently provide variables in the URL so I can ensure my webhooks work consistently
- Gathering Interest
- is resolved by
-
QUEUE-1151 Loading...
- mentioned in
-
Page Loading...