
Step by Step Guide to solve n8n HTTP Request Node Timeout Error
Who this is for: n8n developers and workflow engineers who hit “Request timed out” errors while calling external APIs. We cover this in detail in the n8n Node Specific Errors Guide.
Quick Diagnosis
The HTTP Request node aborts when the remote server doesn’t answer within the node’s Timeout (default = 30 s).
- Increase the timeout in the node UI → Settings → Timeout (ms) (e.g., 60000 ms).
- Or add a “
timeout” field in the node’s Options JSON. - For workflow‑wide control, set the environment variable
N8N_HTTP_TIMEOUTor adjustEXECUTIONS_TIMEOUTin the n8n config.
1. What Triggers a Timeout?
If you encounter any n8n http request node error 401 resolve them before continuing with the setup.
| Trigger | Typical Symptom | Root Cause |
|---|---|---|
| Remote server slow to respond | Error: Request timed out after 30000ms |
Server processing > 30 s, network latency, firewall throttling |
| Large payload download | Same error after a few MB transferred | Node streams data; download exceeds timeout |
| DNS resolution delay | Same error, often with “ENOTFOUND” | Slow or mis‑configured DNS |
| n8n container resource starvation | Same error + high CPU/memory usage | CPU throttling stalls the request |
EEFA note: A timeout often signals upstream back‑pressure. Raising the timeout masks the symptom; use the checklist below to verify the real bottleneck first.
2. Default Timeout Behavior
If you encounter any n8n http node invalid json response error resolve them before continuing with the setup.
| Level | Setting | Source |
|---|---|---|
| Node‑level | 30 000 ms | UI field "timeout" stored in workflow JSON |
| Workflow‑level fallback | `N8N_HTTP_TIMEOUT` env var (default 30 000 ms) | Global environment |
| Process‑level limit | `EXECUTIONS_TIMEOUT` (default 3600 s) | n8n config file |
The node timeout fires before the overall execution timeout.
3. Viewing the Current Timeout
- Open the workflow in the n8n editor.
- Click the HTTP Request node.
- Expand Settings → Timeout (ms).
*If the field is empty, the node inherits the global value.* - Click the gear icon → Show raw JSON.
Raw JSON excerpt
{
"nodes": [
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"options": {
"timeout": 30000
}
}
}
]
}
4. Extending the Timeout
If you encounter any n8n webhook node missing signature resolve them before continuing.
4.1 Node UI (quickest)
Enter a new value in Timeout (ms) and save.
| Desired timeout | Typical use case |
|---|---|
| 30 000 ms (default) | Small APIs, < 1 s latency |
| 60 000 ms | Medium payloads, 10‑30 s processing |
| 120 000 ms+ | Large file downloads, batch jobs |
4.2 Options JSON (programmatic)
Use this JSON when generating workflows via the API or when you need conditional timeouts.
{
"parameters": {
"options": {
"timeout": 120000,
"retryOnFailure": true,
"maxRetries": 2,
"retryDelay": 5000
}
}
}
Tip: retryOnFailure only triggers for timeout (HTTP 408) or network errors.
4.3 Global Environment Variable (workflow‑wide)
Add the variable to .env or Docker Compose and restart n8n.
N8N_HTTP_TIMEOUT=90000 # 90 s for every HTTP Request node
EEFA warning: A very high global timeout can block the worker process, causing queue buildup. Prefer node‑level overrides for isolated cases.
5. Advanced: Custom Axios Instance via Execute Command
const axios = require('axios');
const response = await axios({
method: 'GET',
url: $json["url"],
timeout: 180000, // 3 min
responseType: 'stream',
});
return response.data;
When to use – per‑request timeout and maxContentLength adjustments that the built‑in UI doesn’t expose.
6. Troubleshooting Checklist
| Check | How to Verify |
|---|---|
| Node timeout value set | UI → Settings → Timeout (ms) |
| Global env var applied | n8n env or docker exec <c> printenv N8N_HTTP_TIMEOUT |
| Network latency | curl -w "%{time_total}\n" -o /dev/null <url> from the same host |
| Server processing time | Ask API provider or enable server logs |
| Docker CPU throttling | docker stats – watch %CPU |
| Proxy / firewall timeout | Review corporate proxy config (often 30 s) |
| Retry logic interfering | Ensure retryOnFailure isn’t masking the timeout |
Fix any failing check before simply raising the timeout.
7. Production‑Grade Best Practices
- Cap timeout – avoid > 5 min without a circuit‑breaker; use a watchdog node to abort if needed.
- Log the duration – add a Set node after the HTTP Request to capture
$node["HTTP Request"].error.message. - Exponential back‑off – configure
maxRetriesandretryDelayto prevent hammering the upstream service. - Monitor – expose
n8n_http_request_timeout_totalvia the built‑in Prometheus metrics endpoint. - Graceful fallback – route to an alternative API or cached data when a timeout occurs.
8. Real‑World Example: Pulling a 200 MB CSV
Node definition (first part)
{
"name": "Get CSV",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "https://datalake.example.com/export.csv",
"options": {
"timeout": 180000
}
}
}
Additional Axios options (second part)
{
"responseType": "stream",
"maxContentLength": 250000000
}
}
The 3‑minute timeout and a 250 MB content‑length ceiling allow the workflow to download the large CSV without hitting the default 30 s limit. Downstream, a CSV Parse node processes the stream.
Conclusion
Timeouts in the HTTP Request node are a safety mechanism that protects n8n workers from hanging indefinitely. Extend the timeout only after confirming that upstream latency or payload size is the real cause. Use node‑level overrides for isolated cases, a global N8N_HTTP_TIMEOUT for consistent policy, and always pair higher limits with logging, retries, and monitoring. Following these practices keeps your workflows reliable, observable, and production‑ready.



