Bug Report: Inner Loop Over Items Node Retains Completed State in Nested Loops — Skips Processing on Subsequent Outer Loop Iterations

Describe the problem/error/question

When using nested loops (an outer Loop Over Items node containing an inner Loop Over Items node), the inner loop retains its “completed” state from the previous iteration of the outer loop. As a result, on the second and all subsequent outer loop iterations, the inner loop immediately exits to the “Done” branch without processing any of the new items.

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

{
“Place ID”: “ChIJSYxlUQBbwokRCOGWdXoefqU”,
“Company Name”: “Blue Sky Dental”,
“Category”: “Dental clinic”,
“Website”: “”,
“Company Address”: “& 605, 210 Canal St #603, New York, NY 10013”,
“Country Code”: “US”,
“Leads Name”: “”,
“Leads Email”: “”,
“Leads Job Title”: “”,
“Lead LinkedIn URL”: “”,
“_campaignInput”: “[\n [\n [\n -74.01185969891499,\n 40.721647305667375\n ],\n [\n -74.01758034008841,\n 40.70395061501017\n ],\n [\n -74.01308737172047,\n 40.70095735797025\n ],\n [\n -73.99749902720966,\n 40.70849263136887\n ],\n [\n -73.98953555339598,\n 40.709937320741375\n ],\n [\n -73.99028343370951,\n 40.71421954494025\n ],\n [\n -74.01185969891499,\n 40.721647305667375\n ]\n ]\n]”
}

Information on your n8n setup

  • n8n version: 2.3.6
  • Database (default: SQLite): n/a
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app): n8n cloud
  • Operating system:

Hey Welcome to the n8n community! I’ve faced this problem before and right now your inner **Loop Over Items** is sitting inside the *loop branch* of the outer loop. n8n keeps the node’s state, so after the first outer iteration the inner loop is already marked as completed. When the outer loop starts the second item, the inner loop thinks “I already finished” and jumps straight to Done, which is why nothing processes anymore. Move the inner loop to the **Done branch** of the outer loop instead. Only keep one loop active in a branch at a time. n8n can’t properly run two loop controllers inside each other, so it won’t reset the inner loop for the next iteration. (Learning is : never put a loop node inside a loop node, only use another loop node on the done branch not on the loop one.)

The above image is the type of architecture you should follow when looping multiple things, with your current flow it may take some time to restructure it but i’m sure it will work if you approach it in this way, I know how frustrating it gets so i’m glad you asked this question in the community.