That’s usually either a race condition in your loop logic or a silent error being swallowed. Two quick checks: (1) Add a Code node right after your loop to log all items to make sure they’re actually reaching that point — if some are missing there, its your upstream data. (2) Enable Continue On Fail on any nodes inside the loop, sometimes n8n just silently skips items on error. What does your merge/combine logic look like after the loop?
good day @Hwybeeee
I’d also check whether any node in the loop is returning fewer items than it receives. Some nodes output only successful/matched items, so downstream it can look “random” even though those records were filtered out by a condition, empty result, or API response. Comparing input vs output item counts on each node usually reveals where they disappear.
With the flow, it will be easier to understand your issue…
Hi @Hwybeeee Welcome! the “randomly missing records” in a loop is almost always the SplitInBatches done branch — it only outputs the last batch, not everything, so downstream nodes silently lose items. use $getWorkflowStaticData to accumulate inside the loop and emit all items on done:
drop your processing nodes between Collect Items and the loop-back connection, put everything downstream of Return All. share your workflow if it’s a different loop setup though