I’m using n8n to trigger some database actions based on Atlassian Jira Triggers. I was wondering why every modification results in multiple actions when I noticed, that n8n creates the same webhook multiple times:
Update:
I just found out, that the webhook seems to get created in Atlassian each time n8n is restarted. Since I have watchtower set to update the container once a week, this resulted in the pattern of one webhook per week. Is there a way to disable the (re-)creation of the webhook?
Also I just updated to 1.99.1 and the problem persists
Same issue here. Every time n8n is restarted i get multiple webhooks created in JIRA for each workflow that uses the trigger. The process which is registering the webhook during workflow activation should be checking first to make sure the same webhook doesn’t already exist as it causes JIRA to post to n8n multiple times for each event.
hello, same problem here.
I just cleaned dozens of webhook from n8n.
The webhook should be created once with a name that can be set in the node.
Every app that is connected to my Jira has a readable name (marker_io for example)
And the url must be check before creation of a new webhook.
FYI, n8n has been duplicating webhooks for years. At least 2 years.
To add a little more to this topic, I did observe that they only become duplicated if they are set to use authentication. If you opt to not use authentication for the inbound hook they don’t recreate themselves.
This is a classic webhook lifecycle issue — many tools recreate webhooks on restart without checking existing registrations, which leads to duplicate triggers.
The robust pattern is to treat webhook creation as idempotent, store a canonical webhook ID, and make event handling idempotent too (since duplicates can still arrive).
We kept hitting this with Stripe/Jira-style integrations and ended up putting an idempotency layer in front of automations because retries + duplicate webhooks were breaking workflows.
If useful, this is roughly the approach we use: https://onceonly.tech — it’s an idempotency layer for automation/webhook systems.
Curious how others here are handling webhook deduplication long-term?