automatelab/automation-error-index huggingface dataset:
Platform: n8n
Category: other
Error: n8n may have run out of memory while running this execution
Cause: The Node.js process exhausts heap memory, often from processing large binary files or accumulating many large items across nodes.
Fix: Filter or project only needed fields early. Process binary data in chunks/streams rather than whole. Split monolithic workflows into sub-workflows to bound per-execution memory. Self-hosted: raise the heap with NODE_OPTIONS=--max-old-space-size=4096; on Cloud, upgrade to a higher-memory plan.
Platform: n8n
Category: config
Error: The requested webhook is not registered
Cause: The incoming request's HTTP method does not match the Webhook node's configured method, or the workflow is inactive while the production URL is called.
Fix: Confirm the caller uses the same HTTP method set in the Webhook node. Activate the workflow before using the /webhook/ production URL (the /webhook-test/ URL only works with the canvas open and 'Listen for test event' clicked). After a path rename, deactivate, save, then reactivate to re-register.
Platform: n8n
Category: connectivity
Error: connect ECONNREFUSED 127.0.0.1:5432
Cause: The Postgres node cannot reach the database, typically because n8n is in Docker and the host is set to localhost/127.0.0.1 instead of the container name.
Fix: In Docker Compose, set the credential host to the Postgres service name (e.g. postgres), not localhost. Confirm port 5432 is exposed and pg_hba.conf/postgresql.conf allow remote connections from the n8n network. If using an SSH tunnel, upgrade to n8n v1.99.0 for the connection-pool fix.
Platform: n8n
Category: schema
Error: Unable to parse range: Sheet1!A:D1:undefined1
Affected versions: 0.84.3
Cause: A regression in n8n v0.84.3 caused the Google Sheets Append operation to build malformed range strings with undefined suffixes.
Fix: Upgrade to n8n v0.84.4 or later which contains the patch. If you cannot upgrade immediately, replace the Append operation with a raw HTTP Request to the Sheets API using a correctly formed A1-notation range.
Platform: n8n
Category: config
Error: No columns found in Google Sheet. All rows will be appended
Cause: The Google Sheets node needs schema discovery at design time, but when the spreadsheet ID is a runtime expression it cannot read column headers during setup.
Fix: Pin sample data to the trigger so the Sheets node can resolve the expression and detect columns. Alternatively hard-code a representative spreadsheet ID during setup, load the schema, then switch the field back to an expression. Ensure the sheet has a populated header row in row 1.
Platform: n8n
Category: other
Error: This model's maximum context length is 65536 tokens. However, you requested 73149 tokens.
Cause: The AI Agent/Chat Model node sends a request over the model's token limit, commonly because a shared Window Buffer Memory node accumulates all users' history under one session ID.
Fix: Set a unique session ID per user (e.g. {{ $json.subscriber_id }}). Reduce the memory node's 'Context Window Length' to 10-15 messages. Truncate or summarise large document content before the model call. Or switch to a larger-context model.
Platform: n8n
Category: other
Error: Bad request, please check your parameters. Input tokens exceed the configured limits.
Cause: The OpenAI node's memory accumulates history across users sharing one session ID, growing a single context window beyond the API token ceiling.
Fix: Assign a unique session ID per user (e.g. {{ $json.userId }}) in the memory node. Lower the history limit to 10-15 entries. Replace in-memory storage with an external DB (e.g. Supabase) for per-session isolation. Add a summarisation step if the payload itself is large.
Platform: n8n
Category: connectivity
Error: Connection refused on SSH-tunnelled Postgres (127.0.0.1:34827)
Affected versions: 1.78.1
Cause: n8n v1.78.1 introduced connection pooling with a hard maxConnections default that causes SSH-tunnelled Postgres connections to time out and refuse in looping workflows.
Fix: Upgrade to n8n v1.99.0 which contains the SSH-tunnel connection-pool fix. On earlier versions, raise the SSH tunnel idle timeout and reduce parallelism in loops that hit Postgres so the pool is not exhausted.
Platform: n8n
Category: schema
Error: There was an error initializing DB: relation "credentials_entity" does not exist
Cause: n8n's Postgres migrations run against the wrong schema when DB_POSTGRESDB_SCHEMA is set to anything other than 'public', leaving tables uncreated.
Fix: Set DB_POSTGRESDB_SCHEMA=public or remove the variable so n8n uses the default. If you need schema isolation, create it first and grant the user full privileges before starting n8n. After fixing, wipe the database and let n8n re-run migrations cleanly.
Platform: n8n
Category: schema
Error: function gen_random_uuid() does not exist
Affected versions: 1.121.3
Cause: A migration calls gen_random_uuid(), which requires the pgcrypto extension, but that extension is absent on the Postgres database.
Fix: Connect as a superuser and run: CREATE EXTENSION IF NOT EXISTS pgcrypto; then restart n8n so the migration completes. For Kubernetes, add this to the postgres init script so it runs automatically on new clusters.
Platform: n8n
Category: schema
Error: There was an error running database migrations QueryFailedError: syntax error at or near ":"
Cause: A previously interrupted migration left the migrations table inconsistent, so the next startup's migration runner emits a Postgres syntax error.
Fix: Export all workflows and credentials with the n8n CLI (n8n export:workflow --backup, n8n export:credentials --decrypted) first. Drop and recreate the database, let n8n run a clean migration, then re-import. Do not hand-patch the migrations table unless you know the exact failed step.
Platform: n8n
Category: schema
Error: cannot drop column role of table "user" because other objects depend on it
Affected versions: 1.111.0
Cause: A migration tries to drop the legacy 'role' column but Postgres blocks the DROP because a constraint or index still references it, usually from a schema that diverged during an earlier upgrade.
Fix: Downgrade to the last working version before retrying the upgrade. Identify dependents with SELECT conname FROM pg_constraint WHERE conrelid='public.user'::regclass, drop them with ALTER TABLE public.user DROP CONSTRAINT <name>, then restart n8n to retry. Watch the GitHub issue for an official patch.
Platform: n8n
Category: config
Error: SQLITE_BUSY: database is locked
Error code: SQLITE_BUSY
Cause: SQLite allows only one writer at a time; concurrent workflow executions writing simultaneously cause SQLITE_BUSY.
Fix: Migrate to PostgreSQL for any instance running concurrent workflows - SQLite is for single-user dev only. If migration must wait, set EXECUTIONS_PROCESS=main to serialise executions. On NAS/Azure file shares, move the SQLite file to local container storage (remote mounts have poor SQLite locking).
Platform: n8n
Category: config
Error: Mismatching encryption keys. The encryption key in the settings file does not match the N8N_ENCRYPTION_KEY env var.
Cause: n8n auto-generated a random encryption key on first startup and stored it in ~/.n8n/config, but a different N8N_ENCRYPTION_KEY was later set in the environment.
Fix: Retrieve the original key from the container (docker exec -it <c> cat /home/node/.n8n/config) and set that exact value as N8N_ENCRYPTION_KEY in compose. To start fresh instead, remove containers and the data volume, then set the desired key before n8n first writes config. Never change the key after credentials are saved.
Platform: n8n
Category: auth
Error: Credentials could not be decrypted. The likely reason is that a different "encryptionKey" was used to encrypt the data.
Cause: A new container or recreated data volume started without the original N8N_ENCRYPTION_KEY, so n8n generated a new key that cannot decrypt existing credentials.
Fix: Always pin N8N_ENCRYPTION_KEY explicitly in compose before first startup and keep it across upgrades. If the original key is lost, credentials are unrecoverable - delete and recreate them. In queue mode, every main/worker/webhook container must share the identical key. Persist the /home/node/.n8n volume.
Platform: n8n
Category: config
Error: Missing encryption key. Worker started without the required N8N_ENCRYPTION_KEY
Cause: In queue mode, worker containers must have N8N_ENCRYPTION_KEY set explicitly; they do not read the main instance's config file.
Fix: Add N8N_ENCRYPTION_KEY=<same value as main> to every worker service in compose. Retrieve it from the main instance if not set explicitly (docker exec <main> cat /home/node/.n8n/config). Restart workers. If using N8N_ENCRYPTION_KEY_FILE, read the file in an entrypoint and export it as N8N_ENCRYPTION_KEY due to a known bug.
Platform: n8n
Category: connectivity
Error: Unable to connect to Redis after trying to connect for 10s
Cause: The n8n main/worker cannot reach Redis, commonly from an incorrect QUEUE_BULL_REDIS_HOST, a Docker network mismatch, or TLS issues.
Fix: Verify QUEUE_BULL_REDIS_HOST/PORT match the Redis service name and port and that both containers share a network. For TLS Redis, mount the CA cert and set QUEUE_BULL_REDIS_TLS=true with cert paths. If Redis has idle timeouts, set QUEUE_BULL_REDIS_TIMEOUT_THRESHOLD below the server timeout to reconnect proactively.
Platform: n8n
Category: config
Error: All executions stuck in "Queued" / "Starting soon" and never executed
Cause: Workers disconnected from Redis (or never started) while holding job locks, leaving queued executions in a stale locked state that new workers cannot claim.
Fix: Set QUEUE_HEALTH_CHECK_ACTIVE=true to detect worker disconnects. Restart worker containers to release stale Redis locks; jobs requeue automatically. Ensure every main/webhook/worker container shares EXECUTIONS_MODE=queue and identical Redis vars. Avoid OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS=true if you stop executions manually.
Platform: n8n
Category: config
Error: Connection Lost (workflow editor, behind nginx reverse proxy)
Cause: The nginx location block is missing the WebSocket upgrade headers, so the push/SSE channel n8n uses for editor live-updates is dropped by the proxy.
Fix: Add to the n8n location block: proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; Also set proxy_set_header Host $host; and X-Forwarded-Proto $scheme;. Reload nginx and hard-refresh the browser.
Platform: n8n
Category: connectivity
Error: read ECONNRESET
Error code: ECONNRESET
Cause: The remote server abruptly closed the TCP connection mid-transfer, often due to firewall rules, TLS mismatches, keep-alive timeouts, or the n8n host lacking a stable outbound IP on the target's allowlist.
Fix: Retry the request to rule out a transient blip, then confirm your n8n host's outbound IP is not blocked or rate-limited by the target. In Docker, ensure a stable network route (not NAT hairpin). Enable 'Retry on Fail' on the HTTP Request node (3 retries, 1s wait); for SFTP, downgrading ssh2-sftp-client to 10.x has resolved it.
Platform: n8n
Category: timeout
Error: connect ETIMEDOUT
Error code: ETIMEDOUT
Cause: The outbound TCP connection to the target host got no reply within the OS connect timeout, usually because the destination is firewalled or unreachable from the n8n network.
Fix: Verify the endpoint is reachable from the n8n host (curl/wget from the same container). Check cloud security-group/firewall rules for the destination port. In Docker, confirm the container can reach external IPs. Enable 'Retry on Fail' as a short-term mitigation while the network path is fixed.
Platform: n8n
Category: connectivity
Error: getaddrinfo EAI_AGAIN
Error code: EAI_AGAIN
Cause: DNS resolution returned a temporary failure, most often because n8n runs in an Alpine/musl Docker image whose DNS resolver is less resilient than glibc, or the container's DNS server is overwhelmed.
Fix: Add '--dns 8.8.8.8 --dns 1.1.1.1' to docker run (or 'dns:' in compose) to use reliable resolvers. If you build the image, switch from Alpine to a Debian/Ubuntu base. Enable 'Retry on Fail' as a stopgap; on n8n Cloud it is usually transient and re-running after ~2 minutes succeeds.
Platform: n8n
Category: auth
Error: HTTP Request: Credentials not found
Cause: The credential referenced by the node was created by a different user account; on Community Edition each credential is private to its creator.
Fix: Open the node, click the credential selector, and create a fresh credential under your own account instead of reusing another user's. Re-enter all credentials after importing a workflow. Teams needing shared credentials should use a plan that supports credential sharing.
Platform: n8n
Category: auth
Error: Node has no access to credential
Cause: A workflow was exported from one instance/user and imported into another; the credential IDs in the JSON no longer match any credential on the new instance.
Fix: After importing, open every flagged node and re-select or recreate the credential from the dropdown — do not copy credential IDs across instances. For multi-instance setups, export credentials with 'n8n export:credentials' and import them on the target before importing workflows.
Platform: n8n
Category: config
Error: 502 Bad Gateway (self-hosted, behind reverse proxy)
Error code: 502
Cause: The reverse proxy (nginx/Caddy) closes the upstream connection before a long-running execution completes, because the default proxy_read_timeout of 60s is too short.
Fix: Set 'proxy_read_timeout 300s; proxy_connect_timeout 300s; proxy_send_timeout 300s;' in the nginx server block and reload. Add WebSocket upgrade headers to prevent editor disconnects. Under load, move from SQLite to PostgreSQL and consider EXECUTIONS_MODE=queue with Redis.
Platform: n8n
Category: schema
Error: The workflow did not return a response
Cause: An AI Agent sub-workflow tool ran but the parent got no structured output, typically because parallel branches converge without a Merge node and a race drops the final item.
Fix: Insert a Merge node (Combine) before the sub-workflow's final node to consolidate branches. Ensure the last node emits a JSON object with a 'response' key. For webhook sub-workflows, add a 'Respond to Webhook' node set to 'First incoming Item'. Test the sub-workflow in isolation first.
Platform: n8n
Category: schema
Error: Can't get data for expression - Missing pairedItem data
Cause: A Code node did not attach paired-item metadata to its output, so downstream expressions like $('Node').item cannot trace which input produced each output.
Fix: Return items with a 'pairedItem' index, e.g. return items.map((item, i) => ({ json: item.json, pairedItem: i })). See the n8n docs 'Item linking in the Code node'. For single items use $input.first() instead of .item. Re-run from the start, not mid-execution.