n8n is powerful and forgiving. When it breaks, it usually breaks the same handful of ways. Here's how to fix each.
Workflow doesn't trigger
Symptom: Webhook URL returns 200 but workflow doesn't execute.
Causes & fixes: 1. Workflow is "inactive" — toggle the switch top-right 2. You're testing on the test URL not production — check active URL in webhook node 3. Webhook path collision — change webhook ID in node settings
Node fails silently
Symptom: Workflow completes but data isn't where expected.
Causes & fixes: 1. Expression returns empty — add Set node before to log input 2. Pin sample data and re-run to inspect node-by-node 3. Add "On Error → Continue" temporarily to see all downstream behavior
OAuth keeps disconnecting
Symptom: Google/Slack/HubSpot credentials disconnect every 24 hours.
Causes & fixes: 1. Token refresh not configured — most OAuth nodes need a refresh token, check credentials 2. Provider revoked due to inactivity — re-authenticate 3. Self-hosted n8n missing N8N_HOST env var — OAuth callbacks need correct callback URL
Memory leak on self-hosted instance
Symptom: n8n container OOMs after 3-7 days.
Causes & fixes:
1. EXECUTIONS_DATA_PRUNE=true + EXECUTIONS_DATA_MAX_AGE=168 env vars (auto-prune week-old data)
2. Move execution data from SQLite to Postgres (DB_TYPE=postgresdb)
3. Set N8N_PAYLOAD_SIZE_MAX=16 (MB) to reject huge webhooks
"Cannot read property X of undefined" in expression
Symptom: Red node, error mentions undefined property.
Fix: Add ?? fallback in expression: {{ $json.data?.user?.email ?? "unknown" }}. n8n uses standard JS optional chaining.
Workflow runs but no email/notification
Fix: Check provider quotas. Slack rate-limits at 1 msg/sec. SendGrid has daily caps on free tier. Gmail has 500 sends/day via Apps Script.
Need this built for you?
Hire a vetted Nexora expert. Escrow-protected. Fixed price. From $65.
Browse automation services →