I’m exposing n8n through Traefik with TLS termination, but my production webhook never registers executions.The endpoint resolves, but n8n doesn’t pick up the request. Could this be a base URL mismatch or an issue with how webhook URLs are being generated internally?
Describe the problem/error/question
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Yes, this typically happens when the externally reachable URL and the internal webhook registration URL are not aligned.
n8n generates webhook paths based on the value of WEBHOOK_URL. If this is unset or pointing to the container’s internal address, incoming requests will never map to the correct execution handler.
Please verify:
WEBHOOK_URL reflects the public HTTPS endpoint, not the internal service name.
Your reverse proxy forwards:
X-Forwarded-Proto
X-Forwarded-Host
N8N_HOST and N8N_PROTOCOL are consistent with your external domain.
Without these, webhook signatures are registered against the wrong base URL and remain unreachable from the outside.
This is almost certainly a WEBHOOK_URL mismatch, when n8n is behind Traefik it can’t auto-detect the public URL so it generates webhook paths using the internal hostname. Set WEBHOOK_URL=https://yourdomain.com/ and N8N_PROXY_HOPS=1 in your env vars and it should start picking up requests. Also double check the workflow is actually toggled active since test webhooks and production webhooks are separate.