Introduction to n8n Errors
Every developer building workflows in n8n eventually runs into failures. While n8n makes it incredibly easy to connect nodes visually, the underlying integrations depend on third-party reliability. Recognizing error patterns early allows you to build more resilient workflows and setup proper alerting rules.
1. The Rate Limit (HTTP 429)
When your workflows scale, they run faster and execute more API requests. Most APIs limit the number of calls you can make in a given timeframe (e.g. HubSpot, Salesforce, Airtable). When you cross this line, they return HTTP 429.
How to handle: Enable "Retry on Failure" in node settings or use AutoNod's rate-limit auto-repair which queues retries with appropriate wait times.
2. Expired OAuth Tokens (HTTP 401)
This occurs when n8n's background token refresh process fails, or when a user revokes access to the credentials. All nodes using this integration will start failing immediately with HTTP 401 Unauthorized.
How to handle: Check n8n logs for refresh token errors, and set up a critical alert for auth errors, as they require manual re-authentication.
3. Connection Timeouts (ETIMEDOUT)
These are caused by network drops, DNS failures, or when a third-party server is completely down. In n8n execution data, these appear as ETIMEDOUT or ECONNRESET.
How to handle: Set a timeout limit on your HTTP nodes and implement a fallback path to catch errors and queue them locally.
4. JSON Schema Deviations
If a webhook payload structure changes, your downstream Javascript or Code nodes that reference specific JSON keys (e.g. $json.body.user.id) will throw errors like Cannot read property 'id' of undefined.
How to handle: Always write defensive code. Use optional chaining in javascript (e.g., $json.body?.user?.id) and set up alerts for code node failures.
5. Out of Memory (OOM) Errors
If you process massive datasets (e.g., parsing a 50MB CSV or fetching 100,000 database rows) in a single execution, the Node.js runtime might exceed its memory limits, causing your self-hosted n8n container to crash.
How to handle: Split large arrays into smaller chunks using n8n's batching patterns, and scale your Docker memory allocation.