Data leak

The retry that helped once is now writing everything twice

A timeout is not a failure of the other side — it is the loss of its answer. The record was created; you just never heard about it. Retry, and now there are two.

Why it happens

Retry On Fail and the manual Retry re-run the node from its input, with no memory of what the previous attempt did. Any write without a uniqueness rule — a CRM contact, an order, an email — is duplicated by exactly the retries you added to make the flow reliable. The manual Retry is the sharper edge: it can re-run a whole branch whose first half already succeeded.

How to fix it

Give every write a key the destination enforces: an idempotency key on the API call, a unique constraint or upsert on the database, a dedupe on a stable business id before the write. Where the destination cannot enforce it, record 'done' yourself before replying, and check that record first. Never rely on the absence of an error as proof that the write did not happen.

How to verify

Force a timeout on the write, hit Retry, and confirm the destination still holds exactly one record.

Not sure if this is the only leak?

Paste your workflow and see which writes duplicate when a retry fires — free, 30 seconds.

Scan my workflow free
Related leaks
n8n is writing duplicate leads into your CRMThe run is green and nothing arrivedThe same Shopify order came through twice