Selfhosting on Render with Queue mode

Describe the problem/error/question

Trying to deploy n8n with queue mode in render. But the worker deployment fails for some reason.

But all the others are working fine. Main n8n, Postgres, Redis everything good.

What is the error message?

Deployment fails with the following error message.

==> Deploying...
==> There was a problem starting your server: "worker": executable file not found in $PATH
==> Cause of failure could not be determined

Here is the render.yaml file

services:
  - type: web
    name: n8n
    env: docker
    region: oregon
    plan: standard
    branch: main
    numInstances: 1
    healthCheckPath: /
    envVars:
      - key: DB_TYPE
        value: postgresdb
      - key: DB_POSTGRESDB_HOST
        fromDatabase:
          name: n8nDB
          property: host
      - key: DB_POSTGRESDB_DATABASE
        fromDatabase:
          name: n8nDB
          property: database
      - key: DB_POSTGRESDB_PORT
        fromDatabase:
          name: n8nDB
          property: port
      - key: DB_POSTGRESDB_USER
        fromDatabase:
          name: n8nDB
          property: user
      - key: DB_POSTGRESDB_PASSWORD
        fromDatabase:
          name: n8nDB
          property: password
      - key: QUEUE_REDISDB_HOST
        fromService:
          type: redis
          name: n8nRedis
          property: host
      - key: QUEUE_REDISDB_PORT
        fromService:
          type: redis
          name: n8nRedis
          property: port
      - key: EXECUTIONS_MODE
        value: queue # Enable queue mode
      - key: QUEUE_BULL_REDIS_HOST
        fromService:
          type: redis
          name: n8nRedis
          property: host
      - key: QUEUE_BULL_REDIS_PORT
        fromService:
          type: redis
          name: n8nRedis
          property: port
    disk:
      name: n8nDisk
      mountPath: /home/node/.n8n
      sizeGB: 10

  - type: web
    name: n8n-worker
    env: docker
    region: oregon
    plan: standard
    branch: main
    numInstances: 1
    healthCheckPath: /
    dockerCommand: "worker"
    envVars:
      - key: DB_TYPE
        value: postgresdb
      - key: DB_POSTGRESDB_HOST
        fromDatabase:
          name: n8nDB
          property: host
      - key: DB_POSTGRESDB_DATABASE
        fromDatabase:
          name: n8nDB
          property: database
      - key: DB_POSTGRESDB_PORT
        fromDatabase:
          name: n8nDB
          property: port
      - key: DB_POSTGRESDB_USER
        fromDatabase:
          name: n8nDB
          property: user
      - key: DB_POSTGRESDB_PASSWORD
        fromDatabase:
          name: n8nDB
          property: password
      - key: QUEUE_REDISDB_HOST
        fromService:
          type: redis
          name: n8nRedis
          property: host
      - key: QUEUE_REDISDB_PORT
        fromService:
          type: redis
          name: n8nRedis
          property: port
      - key: EXECUTIONS_MODE
        value: queue # Enable queue mode
      - key: QUEUE_BULL_REDIS_HOST
        fromService:
          type: redis
          name: n8nRedis
          property: host
      - key: QUEUE_BULL_REDIS_PORT
        fromService:
          type: redis
          name: n8nRedis
          property: port
    disk:
      name: n8nDisk
      mountPath: /home/node/.n8n
      sizeGB: 10


  - type: redis
    name: n8nRedis
    ipAllowList:
      - source: 0.0.0.0/0
        description: everywhere
    region: oregon
    plan: starter

databases:
  - name: n8nDB
    plan: starter

I think the dockerCommand is wrong.

and ofc, I have .env file properly with all the variables.

Any ideas?

  • n8n version: latest
  • Database (default: SQLite): postgres
  • n8n EXECUTIONS_PROCESS setting (default: own, main): queue
  • Running n8n via (Docker, npm, n8n cloud, desktop app): docker? using it on render
  • Operating system: not sure.

It looks like your topic is missing some important information. Could you provide the following if applicable.

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

Hi @mcnaveen, thank you for reaching out and being a part of our community!

Can you share the definition of your worker command you are calling?

Hi @Ludwig

I thought it’s supposed to be worker? May be?

./packages/cli/bin/n8n worker

I’m not entirely sure. Because I tried with the full command as well.

Thank you

So the field you’re setting in render specifically wants a docker command. tournament/test/ExpressionFixtures/base.ts at main · n8n-io/tournament · GitHub

So per our documentation of queue mode you would want this command instead:

docker run --name n8n-queue -p 5679:5678 docker.n8n.io/n8nio/n8n worker

You can also check out this community post, though it mainly helps with using Render, rather than setting up queue mode.

For me, the normal mode setup just works fine. The problem I face is with the queue mode and I checked that post, it doesn’t solve my issue

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.