How to increase the default limit 10 of parallel executions?

Describe the problem/error/question

How to increase the default limit of 10 of parallel executions?

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.)

I have tried the concurrency settings in n8n and the worker.

    n8n:
        image: docker.n8n.io/n8nio/n8n:${N8N_VERSION}
        restart: unless-stopped
        environment:
            - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
            - TZ=${GENERIC_TIMEZONE}
            - EXECUTIONS_MODE=queue
            - N8N_RUNNERS_MAX_CONCURRENCY=20
            - N8N_CONCURRENCY_PRODUCTION_LIMIT=30
            - N8N_WORKER_CONCURRENCY=30

    n8n-worker:
        image: n8nio/n8n:${N8N_VERSION}
        restart: always
        command: worker
        environment:
            - 'GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-Europe/Berlin}'
            - 'TZ=${TZ:-Europe/Berlin}'
            - EXECUTIONS_MODE=queue
            - N8N_RUNNERS_MAX_CONCURRENCY=20
            - N8N_CONCURRENCY_PRODUCTION_LIMIT=30

But the above configuration does not help. In Focum, I can not find the solution.

Thank you so much for any help!

Share the output returned by the last node

Information on your n8n setup

  • n8n version: 2.30.7
  • Database (default: SQLite): postgres:16-alpine
  • n8n EXECUTIONS_PROCESS setting (default: own, main): main
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Docker Compose
  • Operating system: Ubuntu 24.04 LTS 64bit

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

Suggested resources

Automatically matched to your question.

Docs:

Forum:

@jabbson, @Jesse_Long, @zenithflare - 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 @mobabel

I seen it, your settings are landing in the wrong places.

  1. N8N_RUNNERS_MAX_CONCURRENCY controls task runners, the sandbox that executes Code nodes. It has nothing to do with how many executions run at once.
  2. N8N_CONCURRENCY_PRODUCTION_LIMIT applies to a main instance running in regular mode. In queue mode the main only enqueues, so it does nothing on either container.
  3. N8N_WORKER_CONCURRENCY is sitting on your main service rather than the worker, so it is on the wrong container either way.

In queue mode the number that matters is the worker’s own concurrency, default 10, which is exactly the limit you are hitting. Set it on the command:

n8n-worker:
command: worker concurrency=30

Recreate the worker after that. Total throughput is concurrency times worker count, so scale the service if one worker isn’t enough.

Thank you so much.

I just tried this:

    n8n-worker:
        image: n8nio/n8n:${N8N_VERSION}
        container_name: n8n-worker
        restart: always
        command: worker concurrency=20

After restarting my container, I checked the worker’s log:

n8n Task Broker ready on 0.0.0.0, port 5679
Discovered 4 cluster checks

n8n worker server listening on port 5678

n8n worker is now ready
 * Version: 2.30.7
 * Concurrency: 10

I even added a new worker and a new task runner with same configuration, but from the logs the worker’s Concurrency is always 10.

The limit of executions is still 10, no change.

Hi @mobabel
concurrency is a CLI flag and needs the two dashes, without them Docker passes it as a plain argument and the worker never picks it up:

command: worker --concurrency=20

The startup line reports the value actually in use, so you’ll see Concurrency: 20 there once it takes. n8n reads that number from N8N_CONCURRENCY_PRODUCTION_LIMIT whenever it’s set to anything other than -1 and only falls back to the flag when it isn’t, so keep that variable off the worker or set it to the same value.

The command is missing the dashes. You have worker concurrency=20, it needs to be --concurrency=20. Without them n8n treats it as a stray argument, ignores it, and falls back to the default 10, which is exactly what your log is showing.

command: worker --concurrency=20

Recreate the container after the change, docker compose up -d --force-recreate n8n-worker. The log should then print Concurrency: 20 on startup, that line is your confirmation.

If you would rather set it as an env var instead, N8N_CONCURRENCY_PRODUCTION_LIMIT=20 on the worker service does the same thing, but it has to be on the worker, not the main.

Thank you for pointing this, it works now!

Hi Willy1,

I am still confused, even though I have configured the concurrency in my workers
worker --concurrency=20

but from the web ui, there are always only maximum 10 running tasks in the executions list. Why?