Workflow Is Not Triggering
Symptom: The workflow exists but never executes on its own.
- Check activation. Verify the toggle in the top bar is set to Active. Inactive workflows only run during manual testing.
- Check the trigger node. The first node must be a trigger (Webhook, Schedule, polling trigger). Action nodes cannot start a workflow automatically.
- Webhook URL mismatch. Confirm the external service calls the production URL (
/webhook/...), not the test URL (/webhook-test/...).
- Schedule timezone. Verify
GENERIC_TIMEZONE matches your expected timezone. Cron expressions use the instance timezone.
Authentication Errors
Symptom: A node fails with 401 Unauthorized, 403 Forbidden, or a credential-related error.
- Expired tokens. OAuth2 tokens expire. Open the credential and click Reconnect to re-authorize.
- Insufficient scopes. Check the node reference for required scopes, update them in the OAuth app config, then reconnect.
- Personal access tokens. Tokens can be revoked or expire. Generate a new one if the old token no longer works.
- OAuth redirect mismatch. The callback URL must match what is registered in the provider's app settings. If your n8n domain changed, update both sides.
Webhook Not Reachable
Symptom: External services report connection errors or timeouts when calling your webhook.
WEBHOOK_URL not set. On self-hosted instances, set the WEBHOOK_URL environment variable to your public URL (e.g., https://n8n.example.com/). Without this, n8n generates URLs with localhost.
- Firewall or network rules. Ensure port 5678 (or your configured port) is open and reachable from the internet. If behind a reverse proxy, confirm the proxy passes traffic to n8n.
- HTTPS required. Many services (Slack, GitHub, Stripe) require webhook URLs to use HTTPS. Set up TLS via a reverse proxy.
- Path mismatch. Double-check the full webhook path. A typo in the path segment or an extra trailing slash can cause a
404.
No Data Coming Through
Symptom: The workflow triggers but downstream nodes receive empty data or undefined values.
- Check node connections. Ensure every node is connected. Look for broken (red) lines in the editor.
- Expression syntax errors. Use the correct syntax:
{{ $json.fieldName }}. Common mistakes include missing $json, incorrect nesting, and referencing nonexistent fields.
- Wrong data path. After a Webhook node, body data is under
{{ $json.body }}. After most other nodes, data is directly under {{ $json }}. Use the input/output panel to inspect actual structure.
- Empty result set. The upstream node returned zero items. A query with no matches passes nothing to the next node.
Execution Timeout
Symptom: The workflow fails with a timeout error before completing.
- Increase the timeout. Set
EXECUTIONS_TIMEOUT to a higher value (in seconds). A workflow-level setting may also override the instance default.
- Check external services. A slow API or unresponsive database can stall execution. Test the service independently.
- Optimize large data sets. Use SplitInBatches for smaller chunks, or filter data early to reduce volume.
- Webhook response timeout. If using "When Last Node Finishes" response mode, the caller may time out. Switch to "Immediately" and process asynchronously.
See Also