Skip to content
New: a free website for your business, live in 48 to 72 hoursWorkflow automation on n8n and Claude, built for your businessFixed price, agreed before we start · Live in 5 to 10 business days30-day money-back guarantee on every planProfessional firms · Agencies · E-commerceYou own every workflow, in your own n8nClaude API: your data is not used for trainingHuman approval on every sensitive stepFree automation audit, no obligation
PURIST
30 days
Money-back window
14 h/wk
Modeled time saved
99.97%
Uptime SLA
< 7 days
Deploy time
PURIST AI
Claude Opus 4.7 · n8n v1.71 · <80ms
What type of business are you running? I'll show you exactly which processes we'd automate first and your estimated ROI.
Powered by n8n + Claude Opus 4.7 Get my free automation plan →
n8n Webhook Not Working? 10 Causes and How to Fix Each One
Guides 7 min read · 1,507 words

n8n Webhook Not Working? 10 Causes and How to Fix Each One

A systematic troubleshooting guide for n8n webhooks, organised by the symptom you see: nothing arrives, 404, 403, 413, 524, or the workflow runs but the caller gets the wrong answer.

Steve, founder of PURIST

November 6, 2026

PURIST: Stuck on n8n? Our n8n experts fix and build workflows like this one, at a fixed price →

"My webhook does not work" can mean ten different things. The fastest way to fix it is to start from the symptom: does the request reach n8n at all, what status code does the sender get, and does an execution appear? This guide is organised that way.

In short. First look at the status code the sender receives. 404 means the URL is not registered (test URL not listening, workflow not published, wrong method or path). 403 means an allowlist or authentication rejected it. 413 means the payload is too large. 524 on n8n Cloud means the workflow took more than 100 seconds to answer. No status at all means the request never reached n8n: a network, DNS or localhost problem.

n8n Webhook Not Working? 10 Causes and How to Fix Each One: workflow diagram
Read the status code first, then go to the right fix. Illustration: PURIST.

Step 0: reproduce with curl

Remove the external tool from the equation. Send the request yourself:

bash
curl -i --request POST https://n8n.example.com/webhook/new-lead \
  --header 'Content-Type: application/json' \
  --data '{"email":"test@example.com"}'

The -i flag shows the status code and headers. If curl works and the external tool does not, the problem is in the tool's configuration (URL, method, headers). If curl fails, keep reading. Our Webhook Payload Generator produces realistic test bodies for common providers.

Symptom: 404 "The requested webhook is not registered"

  1. 1 Test URL not listening. It only listens for 120 seconds after "Listen for test event".
  2. 2 Workflow not published. The Production URL only exists while the workflow is published.
  3. 3 Wrong method or path. A GET to a POST webhook, or an old path after an edit.

Full walkthrough: fix "The requested webhook is not registered".

n8n Webhook Not Working? 10 Causes and How to Fix Each One: node settings
Ten settings to compare when a webhook fails. Illustration: PURIST.

Symptom: 403 Forbidden

  1. 1 IP allowlist. Requests from IPs outside the list receive 403. Behind a reverse proxy, n8n sees the proxy's IP unless you set N8N_PROXY_HOPS to the number of proxies.
  2. 2 Authentication. Basic, Header or JWT auth failed. Check the exact header name and value the sender uses. See how to secure an n8n webhook.

Symptom: 413 Payload Too Large

  1. 1 Payload size. The webhook maximum payload is 16 MB by default. On self-hosted n8n you can raise it with N8N_PAYLOAD_SIZE_MAX (in MiB) and a restart, at the cost of memory. Your reverse proxy may have its own lower limit (for example Nginx client_max_body_size), so check both.

Symptom: 524 or a timeout

  1. 1 Slow response on n8n Cloud. Cloud traffic goes through Cloudflare, and a webhook that does not respond within 100 seconds fails with 524. Respond immediately and process in the background, or split the job into a "start" webhook and a "status" webhook that the caller polls, as the documentation recommends.

On self-hosted n8n, the timeout comes from your proxy or load balancer. The same split pattern applies.

Symptom: no response at all

  1. 1 Localhost or private address. If the node shows http://localhost:5678/..., no outside service can reach it. Set N8N_WEBHOOK_URL to your public address and restart. Details in our guide to n8n webhook URLs.
  2. 2 Network path. DNS not pointing to the server, firewall closing 443, an expired TLS certificate, or a tunnel that stopped. Test the base URL in a browser: you should reach the n8n login page.

Symptom: the workflow runs, but the caller gets the wrong answer

  1. 1 Response configuration. The default answer is "Workflow got started". To return data, set Respond to "When Last Node Finishes" or use a Respond to Webhook node. The Respond to Webhook node answers with the first item only, unless you choose "All Incoming Items". See Respond to Webhook explained.

Related surprises:

  • Browser calls fail with a CORS error. Set "Allowed Origins (CORS)" in the node options to your site's domain.
  • HTML looks broken. Since n8n 1.103.0, HTML responses are rendered in a sandboxed iframe: relative URLs and scripts that touch the parent window do not work.
  • The data is there but nested. Webhook data arrives as body, headers, params and query. Read the email with {{ $json.body.email }}, not {{ $json.email }}.

Where to look in n8n

  • Executions tab of the workflow: production runs appear here, not on the canvas.
  • The node's output in a test run: shows exactly what arrived.
  • Server logs (self-hosted): docker logs n8n shows rejected requests and startup warnings, such as the deprecation notice for WEBHOOK_URL.

A 10-minute debugging routine

When a webhook fails and you do not know why, run these steps in order. Each one rules out a whole family of causes.

  1. 1 Copy the exact URL from the Webhook node (Production URL) and compare it character by character with the one configured in the sender.
  2. 2 Reproduce with curl from your computer, with -i to see the status code.
  3. 3 Reproduce from the server (self-hosted), to separate network problems from n8n problems: curl -i http://127.0.0.1:5678/webhook/your-path.
  4. 4 Open the n8n Executions tab. If an execution exists, the webhook works and the problem is inside the workflow.
  5. 5 Open the failed execution and read the first red node.
  6. 6 Check the proxy logs (self-hosted) for the sender's request and the status the proxy returned.
  7. 7 Check the sender's delivery log for the status and response body it received.

If step 3 works and step 2 fails, the problem is between the internet and your server: DNS, TLS certificate, firewall or proxy configuration.

The webhook payload, decoded

Every Webhook node output has the same four parts. Most "my data is missing" reports are a wrong path into this structure.

json
{
  "headers": { "content-type": "application/json", "user-agent": "Stripe/1.0" },
  "params": { "id": "812" },
  "query": { "source": "ads" },
  "body": { "email": "ana@example.com" }
}
You wantExpression
A field from a JSON body{{ $json.body.email }}
A query string value{{ $json.query.source }}
A route parameter (orders/:id){{ $json.params.id }}
A header{{ $json.headers["user-agent"] }}

Form submissions (application/x-www-form-urlencoded or multipart/form-data) also land in body; files go to binary data when the Binary Property option is set.

Senders that retry

Payment providers and many SaaS tools retry webhooks that fail or time out. If your workflow is slow to respond, the sender may retry while the first execution is still running, and you process the same event twice. Two defences:

  • respond quickly (Respond "Immediately", or a Respond to Webhook node early in the flow);
  • deduplicate on the event ID with the Remove Duplicates node or a lookup before acting.

Troubleshooting table (summary)

SymptomFirst thing to check
404Test vs Production URL, publish state, method, path
403Authentication values, IP allowlist, N8N_PROXY_HOPS
413N8N_PAYLOAD_SIZE_MAX and the proxy body limit
500The failed execution in n8n
524 (Cloud)Respond within 100 seconds
No responseDNS, TLS, firewall, N8N_WEBHOOK_URL
Duplicate executionsSender retries; respond faster, deduplicate
Data missingPath: $json.body...

Production checklist

CheckExpected
Sender uses the Production URL/webhook/... not /webhook-test/...
Workflow publishedYes
Method matchesSame as the node's HTTP Method
Base URLYour public https domain
AuthenticationEnabled and tested
Response modeMatches what the caller expects
Error workflowSet, so failures alert you

Frequently asked questions

Why is my n8n webhook not triggering?

Most often the sender uses the Test URL, or the workflow is not published. Check the status code the sender receives: 404 confirms a registration problem.

Why does my webhook execution not show on the canvas?

Production executions are not displayed on the canvas. Open the workflow's Executions tab.

What is the maximum payload for an n8n webhook?

16 MB by default. Self-hosted instances can raise it with N8N_PAYLOAD_SIZE_MAX.

How do I fix a 524 error on an n8n Cloud webhook?

Answer within 100 seconds. Respond immediately, then process, or use a second webhook for the caller to poll the result.

How do I test an n8n webhook without the real app?

Send a request with curl or Postman to the Test URL after clicking "Listen for test event", using a realistic body. Our Webhook Payload Generator produces sample bodies.

Why do I get two executions for one event?

The sender probably retried because your webhook answered slowly or failed. Respond faster and deduplicate on the event ID.

Where are webhook errors logged on self-hosted n8n?

Failed executions are in the Executions list. Requests rejected before any node runs appear in your reverse proxy logs and in the container logs (docker logs).

Tags

n8nwebhooktroubleshootingself-hostederror
Steve, founder of PURIST

Steve founded PURIST, a workflow automation studio working with n8n, Make and Claude AI, and is the point of contact on every project. Prices and features in our articles come from vendor documentation and public pricing pages. How we research and score tools.

Complete guide

Automation Tools & Platforms

11 min read n8n Code Node: 15 JavaScript Examples You Can Copy and … 8 min read n8n Code Node With Multiple Inputs: 3 Methods That Work 7 min read Fix "Cannot find module" in the n8n Code Node (npm Pack… 7 min read n8n Code Node Errors Fixed: "Code doesn't return items … 7 min read $env and Credentials in the n8n Code Node: What Works a… 7 min read n8n Code Node Binary Data: Read, Change and Return File… 7 min read Python in the n8n Code Node (n8n 2.x): Setup, Syntax an… 7 min read Fix n8n "The requested webhook is not registered" (Test… 6 min read n8n Webhook URL: Test vs Production, and How to Change … 7 min read n8n Respond to Webhook: Return JSON, Status Codes, Redi… 8 min read Secure an n8n Webhook: Header Auth, Basic Auth, JWT and… 7 min read n8n HTTP Request Pagination: Every Pattern With Working… 7 min read n8n HTTP Request Authentication: API Keys, Bearer Token… 7 min read n8n HTTP Request Timeout and "Aborted" Errors: Causes a… 7 min read Upload and Download Files With the n8n HTTP Request Nod… 6 min read Fix ECONNREFUSED in n8n: Docker, localhost and 127.0.0.… 6 min read n8n 429 Too Many Requests: Batching, Retries and Rate L… 6 min read Fix redirect_uri_mismatch for n8n OAuth2 Credentials (G… 7 min read n8n Expression Errors Fixed: "Referenced node is unexec… 6 min read Anatomy Claude skill: what it is, how to install it, an… 5 min read How to explain a business process with the Anatomy skil… 5 min read Anatomy vs Mermaid vs Excalidraw: which to explain a wo… 14 min read n8n LinkedIn Job Automation: Auto-Apply, Track, and Fol… 16 min read n8n HTTP Request Node: Complete Documentation and Examp… 18 min read The future of automation: how our engineering team is s… 8 min read n8n vs Make vs Zapier: the honest comparison your busin… 11 min read n8n vs Make vs Zapier: an honest comparison for product… 7 min read Webhook vs polling: the architecture decision that dete… 24 min read n8n tutorial: build your first production workflow in u… 26 min read The 9 best Zapier alternatives in 2026: an honest ranki… 21 min read Make.com tutorial: build powerful automations without c… 19 min read Automation consultant vs DIY: how to decide what is rig… 14 min read n8n Self-Hosted vs Cloud: The Complete Decision Guide (… 15 min read 5 Zapier Free Alternatives That Handle Real Production … 15 min read WhatsApp Business Automation With n8n: Build a 24/7 Cus… 17 min read Google Workspace Automation: 15 Workflows for Sheets, D… 16 min read Claude AI for Business Automation: What It Does, What I… 15 min read Airtable Automation With n8n: 10 Workflows That Make Yo… 15 min read Droven.io AI Automation Tools: Full Review and Best Alt… 14 min read Droven.io RPA and Business Automation: An Honest 2026 R… 15 min read Enterprise Workflow Automation: The Complete Guide for … 13 min read Document Workflow Automation: Software, Implementation,… 14 min read Marketing Automation Workflow: From Content Creation to… 16 min read Ad Campaign Workflow Data Model and SDR Inbound Pipelin… 14 min read ComfyUI Workflows for Business: Product Photography, Ma… 13 min read GPT-5.2 for Business Workflows and the spec-workflow-mc… 17 min read ServiceNow vs IBM BAW vs n8n: Enterprise Workflow Autom… 16 min read 9 Best Workflow Automation Tools for Small Business in …

Keep reading

More from the blog.

All articles

From audit to deployment

Experience the automation
these articles are about.

Get my free automation plan →