GUIDE · Webhooks
n8n Webhook Not Firing? 7 Fixes Ranked by How Often They Are the Culprit
2026-10-20 · William Ayad · 8 min read
The ranked list — check in this order
Webhook not firing is the most reported complaint in self-hosted n8n, and yet it concentrates overwhelmingly into seven causes. Fix #1 alone decides the majority of cases. The ranking below follows how often each cause actually appears in production, not how scary it sounds — walk it top to bottom and stop at the first hit. This piece focuses on the ladder; for the deeper story of why these webhooks die without alerts, see the silent-failure map.
Fix 1 — You are calling the test URL (the champion of causes)
Two URLs per Webhook node: /webhook-test/… breathes only while the editor is actively listening, auto-expiring the second you close the tab. /webhook/…is the production route that requires the workflow toggle to be Active. The test URL ending up in a client integration, a GitHub webhook setting, or a Stripe dashboard is fixture of the forum — always the first check, always the cheapest. This is also the «activation trap» check every preflight should perform.
Fix 2 — The workflow is not Active (or was Active until Tuesday)
Deactivation happens accidentally: editing a node during a hotfix and saving, an import that defaulted to inactive, an activation that unwound when a credential expired upstream. Do not reason about whether you «definitely activated it last week» — open the workflow and read the toggle. It is a binary fact, free to verify.
Fix 3 — Duplicate path, two workflows, one winner
A webhook path plus HTTP method is a unique registration. When two workflows register the same combination, the newer activation owns the route — and the older workflow falls deaf with no error shown anywhere visible. Audit duplicate paths across workflows, particularly after duplicating a workflow to build a variant. The export file reveals the path plainly if grep is your speed.
Fix 4 — Reverse proxy stripped the prefix
Behind Nginx, Traefik, or Caddy with a subpath (yoursite.com/n8n/…), misconfigured proxies frequently strip the path prefix before forwarding — the request arrives at /webhook/test/order instead of /n8n/webhook/test/order, and n8n returns 404 to the outside caller while logs stay silent. The fix lives in the proxy config and the WEBHOOK_URLenvironment variable; the diagnosis is one external curl with verbose output.
Fix 5 — Queue mode registration drift
In queue mode, webook registration must land on the webhook processors — and after worker restarts, scale-down events, or broker reconnections, registrations can drift. A workflow Active in the UI with no route actually listening is the classic symptom. The queue-mode piece covers how registration works under the hood and how to detect drift in seconds.
Fix 6 — Auth layer eating the request
Header auth on the Webhook node is essential for production — but a caller sending the wrong header value or omitting it gets a 401 with an otherwise healthy-looking workflow. Verify the auth configuration once, from the outside, with the exact headers the caller claims to send. A misaligned secret is five minutes to fix and costs hours to diagnose from inside the editor.
Fix 7 — Firewall and bot protection quietly intercepting
Cloudflare bot-fight modes, WAF rules, and managed firewalls inspect POST bodies and happily drop «suspicious» payloads from sources you trust. If curl from outside gets 200 but your real sender stays silent, you are here: allowlist the sender's IPs or user-agent at the edge, and confirm with the WAF's request logs.
The 5-minute diagnosis you will reuse forever
Read the URL your caller is calling (test or production?), verify the Active toggle, grep the export for duplicate paths, curl from outside with verbose output, compare stage-by-stage against the Executions log. Five dollars of discipline, an hour of guessing replaced. The identical traps — and the other two killers the export hides — are what the free n8n workflow audit flags from the JSON inside your browser tab, no upload, no account.
Where the free audit stops (honesty first)
The free tool holds the five structural checks. It does not listen to live traffic, trace proxy chains, or detect queue-mode registration drift at run time. The 24-rule preflight, 21 failure fixes, and production runbook instruments live in the n8n Reliability Kit — one-time $39, disclosing: it is mine, running in your browser like everything else here.
Ranked by frequency because guessing is the expensive fix. Walk the list; the webhook tells you where it is.
Pre-empt the next silent webhook before it fails: