Hi! This is a fairly common puzzle in n8n — a loop that silently stops with “success” usually has one of a handful of root causes. Here’s a systematic checklist to diagnose and fix it:
1. Verify your Loop Over Items (SplitInBatches) wiring
The most frequent cause. The node has two outputs:
- Output 1 (loop) → your HTTP Request node → back into the Loop Over Items node
- Output 2 (done) → whatever comes after the loop
If the “loop” output is not connected back into the node, n8n processes only the first batch and then exits cleanly — no error, just “success.” Double-check both connections on the canvas.
2. Enable “Continue on Fail” on your HTTP Request node
Some APIs return a 429 (rate limit), 404, or 5xx with an empty body. By default, n8n may swallow these silently depending on your version. Enable Continue on Fail on the HTTP Request node, then add an IF node after it to branch on {{ $json.error }} or a status code check. This makes hidden failures visible.
3. Add a Wait node to handle rate limits
If your API has rate limits, bursting all calls in quick succession can cause it to stop responding. Add a Wait node (set to 1–2 seconds) inside the loop, between the HTTP Request and the loop-back connection.
4. Check your execution timeout
n8n has a configurable execution timeout. If your loop is long-running, it can be killed silently and still marked “success.”
- Self-hosted: check the
EXECUTIONS_TIMEOUT environment variable (default is often 3600s but can be lower).
- n8n Cloud: there is a default timeout per plan.
- You can also check Settings → n8n Settings → Execution Timeout in the UI.
5. Verify your actual item count
Before the loop, add a quick Code node or just inspect the output of the node feeding the loop. Confirm the number of items matches your expectation. It’s possible the source data genuinely has fewer items than assumed.
6. Check memory / process limits (self-hosted)
Very large loops in own process mode can exhaust memory and terminate silently. Consider switching to main process mode via EXECUTIONS_PROCESS=main, or break the loop into smaller batches using the Batch Size setting on the Loop Over Items node.
Docs worth reading:
Hope this helps! If it solved your issue, please mark this as the solution and heart