n8n error index

Webhooks · Webhook

The requested webhook "POST /webhook/[id]" is not registered.

Nothing is listening on that method and path at the moment your request arrived. n8n keeps a live registry of webhook routes, and a route is only in it while the workflow is active (production URL) or during the single call that follows clicking Execute workflow (test URL).

Don't read the message. Read the hint underneath it. n8n attaches one of exactly two hints, and which one you get tells you which URL n8n thinks you called — which is the whole diagnosis.

The two hints, verbatim

If the response hint says:

Click the 'Execute workflow' button on the canvas, then try again. (In test mode, the webhook only works for one call after you click this button)

…n8n received your request on the test URL. Test registration is armed by clicking Execute workflow and is consumed by one call. Not one minute, not one session — one call. If you clicked Execute, sent a request that failed for an unrelated reason, and sent a second one, the second gets this error.

If the hint says:

The workflow must be active for a production URL to run successfully. You can activate the workflow using the toggle in the top-right of the editor. Note that unlike test URL calls, production URL calls aren't shown on the canvas (only in the executions list)

…n8n received your request on the production URL, and the workflow isn't active. Flip the toggle top-right.

That second hint also quietly answers the question people ask next: a successful production call shows nothing on the canvas. It's in Executions. A silent canvas is not evidence that the call failed.

If your path is right but your method is wrong, the message is different

n8n checks whether that path is registered for other HTTP methods first, and if it is, you get a different message entirely:

This webhook is not registered for POST requests. Did you mean to make a GET request?

If you're reading that, stop debugging activation — the workflow is active and the path is correct. You sent the wrong verb. (With several registered methods it lists them: Did you mean to make a GET, PUT or PATCH request?)

So the two messages split your problem in half before you touch anything:

What you see What's true
The requested webhook "…" is not registered. nothing is listening on that path at all
This webhook is not registered for X requests. Did you mean… the path is live; your HTTP method is wrong

"Received request for unknown webhook" is a log line, not an error

If you found that phrase in your server logs rather than in an HTTP response, it's n8n's own logging of this same failure:

Received request for unknown webhook: <the message above>

The useful part is everything after the colon — it's the message from the table above, including the path n8n actually received. On a self-hosted instance behind a reverse proxy that's the line worth reading, because a proxy that strips or rewrites a path prefix means n8n is being asked for a route you never typed. Compare the path in that log line against the URL you sent before assuming the workflow is at fault.

The checklist, in the order that resolves fastest

  1. Read the hint and act on whichever of the two it is. Most cases end here.
  2. Test vs production URL. They're different paths — the Webhook node shows both. Copying the test URL into a third-party service's settings and leaving it there is the single most common version of this error, because it works exactly once during setup and never again.
  3. Method. If you got the "did you mean" variant, this is it.
  4. Exact path. Trailing slashes, a stale UUID after the workflow was duplicated, an environment variable that still points at the old instance.
  5. Self-hosted, behind a proxy: compare the received path in the log line to what you sent.

Why it happens at all

The registry only holds routes that can currently be served. An inactive workflow has no listener — not a disabled one, no listener at all — so the HTTP layer answers 404 without ever consulting your workflow. That's why the error arrives instantly and why nothing appears in Executions: the request never reached an execution.

Test registration works the same way, with a deliberately tiny lifetime, because it exists to let you inspect one payload on the canvas, not to serve traffic. Treating the test URL as a real endpoint is the mistake the design invites and this error punishes.

A worked example

Treadle's Inquiry Triage takes inbound messages on a webhook, strips quoted history and signatures, and has Claude classify intent and extract fields.

Inquiry Triage — $19


Sources: packages/cli/src/errors/response-errors/webhook-not-found.error.ts and packages/cli/src/webhooks/webhook-request-handler.ts in n8n's repository, read directly. The hint text quoted above is n8n's own, verbatim from that source.

Related errors on this site

Last verified 15 September 2026 against n8n 2.39.5 (source read on master @ 2.40.0). n8n changes these messages between releases; if the wording you see differs, the version above is what this page was checked against.