Failure class
Duplicate records that survive rebuilding the Zap
The symptom
A payment or form webhook creates two records instead of one. Not every time. The Zap has been rebuilt and re-authenticated more than once, and it keeps happening.
What the log shows
11:03:19Z webhook evt_3Pk92f payment_intent.succeeded
11:03:19Z Create record rec_A OK
11:03:41Z webhook evt_3Pk92f payment_intent.succeeded
11:03:41Z Create record rec_B OK
The question that separates the causes
Is the event id the same on both deliveries?
Verdict
Same id, 22 seconds apart, is expected provider behaviour meeting a consumer that has no dedupe key. The bug is the missing key, not the delivery.
The fix
- Add a lookup step keyed on the event id before the create step, and exit if it already exists.
- Where the destination supports it, use upsert on a natural key instead of create — simpler and race-free.
- Acknowledge the webhook immediately and do the slow work afterwards.
Hardening
If duplicates appear only under load and never reproduce when you test by hand, it is a different problem: two runs reading before either writes. Manual tests are serial, so they cannot reproduce it.
Still not it?
Send the workflow export and the execution log of one failing run. Within 24 hours you get a written diagnosis: the exact line in your own log that caused it, the fix in your own UI, and a corrected workflow file you import yourself. No account access, no credentials, no call. If the artifacts do not contain the answer, the report says so and it is refunded.
Send an autopsy request →Or write to hello@workflowautopsy.com.