How to make workers to process one execution per worker at a time in queue mode?

Consider this workflow

which is running on queue mode. The Execute Workflow node’s option for Wait For Sub-Workflow Completion is set to false to make sure the parent execution doesn’t have to wait for the child to run the next one.
However, since I am running this workflow on queue mode, I expect the number of concurrent executions are limited to the number of workers. Meaning, if I have 2 workers, I see 2 concurrent executions and not more.

I checked the documentation and set the concurrency flag to 1, but the issue remained.

I also saw some answers from the community users (Link1 , Link2) which suggest to use RabbitMQ. It is possible to do it but it beats the purpose of having the queue mode in a system IMO if I can’t control the worker’s behaviour even in the number of executions it runs.

Information on your n8n setup

  • n8n version: 1.64.3
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main): main
  • Running n8n via (Docker, npm, n8n cloud, desktop app): self-hosted (using Portainer)

Hi @arvinfr ,

Welcome to the community! :sunflower:

Manual executions will run on main, regardless of having queue mode set up or not.
Sub-workflows will always execute as part of the main worfklow, and therefore they don’t abide by concurrency limits.
So, when you run a manual execution, the sub-wfs that get triggered from that will follow it and also run in main.

If you use an active trigger, say a webhook or a schedule node, your usecase should work as expected, respecting the consurrency limits you set.