The same webhook event keeps firing through your Zap repeatedly. Your endpoint is getting hit 3, 10, or 50 times for one event. This is almost always a response code issue — and it stops immediately once you return the right status.
Zapier retries webhook deliveries until it receives a 200 OK response. If your endpoint returns 201, 204, 302, 500, or times out, Zapier queues it for retry. Return a plain 200 with any body (even empty) as soon as you receive the webhook, before processing. Process async.
Zapier's webhook delivery timeout is ~10 seconds. If your endpoint runs database queries, API calls, or heavy logic before responding, it may time out. Zapier sees a timeout as a failed delivery and retries. Fix: acknowledge the webhook immediately with 200, then process in a background job.
If the sending system fires the same event multiple times (e.g., Stripe sends webhook retries if it doesn't get a fast 200 from your server), Zapier receives multiple events. The loop is actually upstream. Add idempotency checks: store processed event IDs and skip duplicates.
If a step inside your Zap fails (e.g., a filter rejects the payload, a formatter crashes), Zapier may re-run the trigger. Check your Zap's task history for error states on individual steps — fixing the failing step stops the re-trigger.
If someone manually replayed tasks from the Zapier dashboard to debug an issue, that can look like a loop. Check task history timestamps — if they're clustered and manually spaced, it's a replay, not an automated loop.
Real operator. No ticket queue. San Diego-based. Most issues resolved in one thread.
Related problems in this cluster: