Loader

n8n Webhook Not Working? Common Causes and Fixes

When an n8n webhook does nothing, the cause is usually one of a few settings. Work through this checklist from the most common cause to the least.

  • WEBHOOK_URL and HTTPS
  • Test vs production URL
  • Reverse proxy checks
n8n Webhook Not Working? Common Causes and Fixes
  • 26 October 2026
  • by Admin

n8n Webhook Not Working? Common Causes and Fixes

Webhooks are how outside services tell n8n that something happened, for example a payment, a form submission or a chat message. On a self-hosted server they break in predictable ways. Check these in order.

1. The workflow is not active

The Test URL works only while you click "Listen for test event" in the editor. The Production URL works only when the workflow is switched to Active. Many people send real traffic to the test URL, or forget to activate the workflow.

2. The webhook URL shows localhost

If the webhook node shows an address like http://localhost:5678/..., n8n does not know its public address. Set the public base URL and restart.

N8N_HOST=n8n.example.com
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n.example.com/

More about these settings in our environment variables guide.

3. The service requires HTTPS

Telegram, Stripe, GitHub and many others refuse plain HTTP or a self-signed certificate. Put n8n behind Caddy or Nginx with a real certificate. Test from outside your network, not only from the server itself.

4. The reverse proxy drops headers or blocks the path

  • Forward the Host and X-Forwarded-Proto headers.
  • Allow WebSocket upgrades so the editor stays connected.
  • Do not add authentication in front of the /webhook/ path, because outside services cannot log in.
  • Check that the proxy points to the right port (default 5678).

5. The firewall or DNS blocks the request

Open ports 80 and 443 on the server and in any cloud firewall. Check that your domain's DNS record points to the server's IP. You can test with a simple request from another machine:

curl -i -X POST https://n8n.example.com/webhook/your-path -d '{"test":true}'

6. A 404 error

A 404 usually means the path is wrong, the HTTP method does not match (GET vs POST), or the workflow is not active. Open the webhook node and confirm the path and method.

7. Queue mode

If you use queue mode, make sure the same encryption key, database and Redis are used by every process, and that webhook requests reach the right process. See n8n queue mode explained.

8. Check the logs and executions

docker compose logs -f n8n

The logs and the Executions list show whether a request arrived at all. If nothing shows, the problem is in DNS, firewall or proxy. If it arrives and fails, open the failed execution to see the error.

Webhooks also need protection once they work. Read our n8n security checklist.

Tired of debugging proxies and certificates? Managed n8n hosting comes with HTTPS set up.

See Managed n8n Plans

Frequently asked questions

  • Why does my n8n webhook URL show localhost?
    WEBHOOK_URL is not set. Set it to your public HTTPS address and restart n8n.
  • What is the difference between the test and production webhook URL?
    The test URL works only while you listen for a test event in the editor. The production URL works when the workflow is active.
  • Why does Telegram not send events to n8n?
    Telegram needs a public HTTPS webhook URL with a valid certificate. Check HTTPS, DNS and WEBHOOK_URL.