Atlassian Workflow is triggered multiple times because of duplicate Webhook

Describe the problem/error/question

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:

The URLs are exactly the same and their last edit dates are a week apart (at least fits until May 25th).

Please share your workflow

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 1.98.2
  • Database (default: SQLite): postgresdb
  • n8n EXECUTIONS_PROCESS setting (default: own, main): own
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker
  • Operating system: Ubuntu Server 18.04
2 Likes

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

2 Likes

I keep having to delete duplicate webhooks. Is anyone else having the same issue?

Yes I have the same issue and I am using the cloud version!

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?

Hi all,

I’ve been dealing with a slightly different problem, but still related.

Jira Trigger: 409 - {"messages":[{"key":"Webhook with the same URL, set of events, filters and body exclusion setting already exists."}]}

The workaround, which I found, was not to use the Jira Trigger, but instead replace that with a Webhook node.

Then, on the Jira side not use classic webhooks but use global automation and set up the automation to call n8n webhook.

This bypasses the buggy implementation altogether.

Hope this helps someone.