Level 2 course - loop behavior

Describe the problem/error/question

Going through the level 2 course and am having an issue with something seemingly very simple. Creating manually or via copying the code directly from Merging and splitting data | n8n Docs, the loop shows 2 input items, but only processes 1 (batch size set to 1).
If I set the batch size to 2 it will run both as you’d expect.
If I add a node to the done branch, it runs both.
.
Is this just a loop behavior change between the version the courses were designed on and the current version?

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
    2.19.5
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app): docker
  • Operating system:

Hey @flowdan, good observation - this tripped me up too when I first learned n8n!

What you’re seeing is actually correct behavior, not a bug. Here’s what’s happening:

With batch size = 1, the Loop Over Items node processes one item per pass. For 2 items, the loop runs 3 times total:

  • Pass 1: sends item 1 through “loop” branch
  • Pass 2: sends item 2 through “loop” branch
  • Pass 3: no more items, fires the “done” branch with ALL collected results

When you look at the node settings screenshot, you’re seeing the final state of the loop (the “done” pass), which shows 0 items on the loop branch because there’s nothing left to process. That’s correct!

The difference between the course and your workflow:

  • Course shows the loop mid-execution (1 item on loop branch = it’s processing the first item)
  • Your version shows the node settings panel which always reflects the last execution pass

If you actually check your RSS Read node, you’ll see it executed twice (once per item), which confirms the loop ran correctly for both items.

The “batch size 2” workaround you found works too, but it sends BOTH items at once through the loop branch instead of one at a time. Either approach works depending on whether you need them processed individually or together.

yeah this is a version behavior change, not you doing anything wrong.

in newer versions if there’s nothing connected to the loop branch output n8n basically considers the job done after the first batch. it processes it, has nowhere to send it, and stops. the done branch only fires after all iterations complete so that’s why adding a node to the done branch also fixed it for you.

the fix is exactly what you found — just drop a No Operation node on the loop branch and it’ll run through everything correctly. the course docs just haven’t caught up with this change yet.

The RSS node only shows the one run as well though. Sounds like it does just require something connected to the done branch.

vs

when it actually runs both items

@flowdan I’d connect a node to the done output and continue the workflow from there if the next step needs all RSS items together.