Remove task runner from n8nio/n8n docker image

Describe the problem/error/question

I am trying to migrate my n8n Queue Mode setup on Railway from v1.x to v2.0.0. Since v2.0 removes the internal task runner, I set up External Task Runners using the n8nio/runners:2.0.0 image as sidecars.

My setup consists of 6 main services in Railway:

  1. Primary (n8nio/n8n:2.0.0)

  2. Worker (n8nio/n8n:2.0.0 running n8n worker)

  3. Task Runner for Primary (n8nio/runners:2.0.0)

  4. Task Runner for Worker (n8nio/runners:2.0.0)

  5. Postgres (db)

  6. Redis

Architecture & Config:

  • Primary has:

    • N8N_RUNNERS_ENABLED=true
      
      N8N_RUNNERS_MODE=external
      
      N8N_RUNNERS_BROKER_LISTEN_ADDRESS=0.0.0.0
      
  • Task Runner (Primary) connects to:

    • N8N_RUNNERS_TASK_BROKER_URI=http://${{Primary.RAILWAY_PRIVATE_DOMAIN}}:5679
      
  • Worker has similar config to Primary.

  • Task Runner (Worker) connects to:

    • N8N_RUNNERS_TASK_BROKER_URI=http://${{Worker.RAILWAY_PRIVATE_DOMAIN}}:5679
      

The Issue: Despite the logs on the Primary instance showing that runners are registering (

Registered runner "launcher-javascript" ...

), my workflows containing Code Nodes do not execute. They get stuck or queued indefinitely.

Specifically, on the Worker side, the Task Runner logs often show:

[launcher:js] Waiting for launcher's task offer to be accepted...
[launcher:js] Waiting for task broker to be ready...

It seems like the handshake happens, but the actual task execution fails to route correctly in the Railway private network environment.

What is the error message (if any)?

In the Worker's Task Runner logs:

INFO  [launcher:js] Starting launcher goroutine...

INFO  [launcher:js] Waiting for task broker to be ready...

INFO  [launcher:js] Waiting for launcher's task offer to be accepted...

In the Primary logs (showing successful registration but no execution):

Registered runner "launcher-javascript" (954eda98a81d248f) 

Registered runner "launcher-python" (be643b2515650863) 

Enqueued execution 1 (job 1)

... (Execution hangs here)

Information on your n8n setup

  • n8n version: 2.0.0

  • Database (default: SQLite): Postgres

  • n8n EXECUTIONS_PROCESS setting (default: own, main): queue

  • Running n8n via (Docker, npm, n8n cloud, desktop app): Railway (Docker)

  • Operating system: Linux

2 Likes

can anyone help here?