Multiple parallel execution branches when many nodes feed into one node — causing API rate limit errors

I have a workflow where a single Code node (“Consolidate Broad Intel”) receives connections from 9 upstream nodes (Google Trends RSS, CoinGecko Market, CoinGecko Trending, Fear & Greed Index, Read Topic Memory, and several others). All 9 run in parallel at the start, then feed into this one node.
The problem: it looks like n8n is executing everything downstream multiple times — I’m seeing 4+ parallel execution branches all the way to the end of the workflow, causing my ElevenLabs API to hit its concurrency limit (max 5 concurrent requests).
I’m using v1 execution order. Does n8n run the downstream nodes once per upstream that completes? If so, what’s the correct way to wait for ALL parallel branches to finish before continuing with a single execution path?
Is a Merge node the right solution here? If so, which merge mode should I use?

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

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

Hey @Hassan_Ehtesham, while you wait for a response, here are some things that might help:

Suggested resources

Automatically matched to your question.

Docs:

Forum:

@ihortom, @hubschrauber, @Olek - you’ve helped with similar issues before, can you take a look?

Automatically suggested by n8n’s community bot. It’s a pilot - please share feedback here.

Hey @Hassan_Ehtesham Welcome to the n8n community and yes, it does. A node with several connections into its one input runs once per upstream branch, so with v1 order “Consolidate Broad Intel” gets called once per source, and everything after it repeats each time.

A Merge node is the right fix. Put one between the 9 sources and the Code node, set Mode to Append and Number of Inputs to 9, and wire each source into its own input. Append waits for all connected inputs and then passes every item on in a single run, so the Code node and your ElevenLabs step only run once per execution. In the Code node, $input.all() then holds the items from all 9 sources, or you can keep reading each one by name with :
$('CoinGecko Market').first().

Hi @Hassan_Ehtesham, one detail to add to the Merge setup above: Append keeps all the items. It doesn’t combine them into one item, so one node run can still make several ElevenLabs requests.

If this is meant to produce one combined audio clip, set Consolidate Broad Intel to Run Once for All Items, consolidate the text, and return exactly one item. Check that the ElevenLabs node’s input shows 1 item.

Also, v1 runs the branches sequentially. Could you share the Code node’s output item count and the ElevenLabs input item count from the same execution?

Adding to the Merge suggestion: a Merge in Append mode waits for all 9 inputs, but it then outputs every item, so if the next node (ElevenLabs) is set to run per item you will still get several requests at once. Two ways to guarantee one run:

  1. After the Merge (or directly after your “Consolidate Broad Intel” Code node), add an Aggregate node set to “All Item Data” into a single field, or set the Code node to “Run Once for All Items” and return exactly one item. As Anshul said, check the ElevenLabs node input shows 1 item.
  2. If you still need to send several requests, open that node’s Settings > Batching and set Items per Batch to 1 or 2 with a Batch Interval (for example 1000 ms) so you stay under the 5-concurrent limit.
    To see which branch fires the downstream nodes, open the execution and look at how many times each node ran and the item count on each input. If you post those two numbers it will be easy to pin down. Disclosure: I fix broken n8n workflows professionally (flat $49, AI-assisted with tests); if useful, details are here: n8n workflow fix (one workflow)

Building on what Deepankar, Anshul and NotOptional said: once the Merge / single-item fix is in, it’s still worth keeping a guard on the ElevenLabs side, since that limit is per account and not per workflow. Two other executions (a manual test plus the scheduled run, say) can still push you past 5 concurrent requests.

  • On the ElevenLabs node set On Error > Continue (using error output) and route a 429 to a Wait of a few seconds, then back into the node, with a max-retry counter so it can’t loop forever.
  • If you do end up sending several items, the Batching setting mentioned above (or Loop Over Items with batch size 1) keeps requests going out one after another.
  • Quick check: in the execution view, click the Code node and look at “Run 1 of N”. If N > 1, the node is still being called once per upstream branch.

(drafted with AI help, checked by me)

Hi @Hassan_Ehtesham, did the Merge/single-item changes suggested above resolve the ElevenLabs limit issue? If it is still blocking you, would you consider a small fixed-price debugging task? The Code node output count and ElevenLabs input count from the same execution would help establish the scope. Please leave out credentials and customer data.