Issues with Queue Mode setup

Describe the problem/error/question

I’m having trouble getting the main worker in a distributed queue mode setup working correctly. My main process has the following environment variables:

    DB_POSTGRESDB_USER:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: DATABASE_USERNAME
    DB_POSTGRESDB_HOST:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: DATABASE_WRITER_ENDPOINT
    DB_POSTGRESDB_PASSWORD:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: DATABASE_PASSWORD
    N8N_ENCRYPTION_KEY: 
      valueFrom:
        secretKeyRef:
          name: n8n
          key: N8N_ENCRYPTION_KEY
    # Enables "queue mode"
    EXECUTIONS_MODE:
      value: queue
    QUEUE_BULL_REDIS_HOST:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: REDIS_ENDPOINT
    QUEUE_BULL_REDIS_PASSWORD:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: REDIS_AUTH_TOKEN
    QUEUE_BULL_REDIS_PORT:
      value: "6379"
    OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS:
      value: "true"          
    QUEUE_HEALTH_CHECK_ACTIVE:
      value: 'true'
    QUEUE_HEALTH_CHECK_PORT:
      value: "5680"
    N8N_RUNNERS_ENABLED:
      value: "true"
    N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS:
      value: "true"
    N8N_LOG_LEVEL:
      value: "debug"
    N8N_WORKER_SERVER_ADDRESS:
      value: "0.0.0.0"
    N8N_METRICS:
      value: "true"

What is the error message (if any)?

When I start the process, with debug logs enabled, I see:

2025-08-12T14:02:53.725Z | info | Initializing n8n process {“file”:“start.js”,“function”:“init”}
2025-08-12T14:02:53.745Z | debug | Starting main instance in scaling mode {“scopes”:[“scaling”],“file”:“start.js”,“function”:“init”}
2025-08-12T14:02:53.749Z | debug | Host ID: main-bOSU7vWKj1ZQjwix {“scopes”:[“scaling”],“file”:“start.js”,“function”:“init”}
2025-08-12T14:02:54.144Z | debug | Lazy-loading nodes and credentials from n8n-nodes-base {“nodes”:482,“credentials”:384,“file”:“lazy-package-directory-loader.js”,“function”:“loadAll”}
2025-08-12T14:02:54.185Z | debug | Lazy-loading nodes and credentials from @n8n/n8n-nodes-langchain {“nodes”:100,“credentials”:22,“file”:“lazy-package-directory-loader.js”,“function”:“loadAll”}
2025-08-12T14:02:54.723Z | info | n8n ready on ::, port 5678 {“file”:“abstract-server.js”,“function”:“init”}
2025-08-12T14:02:54.749Z | debug | Started Redis client publisher(n8n) {“scopes”:[“redis”,“scaling”],“type”:“publisher(n8n)”,“host”:“``master.n8n.3wm9q0.use1.cache.amazonaws.com``”,“port”:6379,“file”:“redis-client.service.js”,“function”:“createRegularClient”}
2025-08-12T14:02:54.822Z | debug | Registered a “reload-license” event handler on License#reload {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.823Z | debug | Registered a “relay-execution-lifecycle-event” event handler on Push#handleRelayExecutionLifecycleEvent {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.823Z | debug | Registered a “clear-test-webhooks” event handler on TestWebhooks#handleClearTestWebhooks {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.824Z | debug | Registered a “restart-event-bus” event handler on MessageEventBus#restart {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.824Z | debug | Registered a “display-workflow-activation” event handler on ActiveWorkflowManager#handleDisplayWorkflowActivation {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.824Z | debug | Registered a “display-workflow-deactivation” event handler on ActiveWorkflowManager#handleDisplayWorkflowDeactivation {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.825Z | debug | Registered a “display-workflow-activation-error” event handler on ActiveWorkflowManager#handleDisplayWorkflowActivationError {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.825Z | debug | Registered a “add-webhooks-triggers-and-pollers” event handler on ActiveWorkflowManager#handleAddWebhooksTriggersAndPollers {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.825Z | debug | Registered a “remove-triggers-and-pollers” event handler on ActiveWorkflowManager#handleRemoveTriggersAndPollers {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.826Z | debug | Registered a “response-to-get-worker-status” event handler on WorkerStatusService#handleWorkerStatusResponse {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.826Z | debug | Registered a “community-package-update” event handler on CommunityPackagesService#handleInstallEvent {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.826Z | debug | Registered a “community-package-install” event handler on CommunityPackagesService#handleInstallEvent {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.827Z | debug | Registered a “community-package-uninstall” event handler on CommunityPackagesService#handleUninstallEvent {“scopes”:[“pubsub”],“file”:“pubsub.registry.js”,“function”:“init”}
2025-08-12T14:02:54.828Z | debug | Started Redis client subscriber(n8n) {“scopes”:[“redis”,“scaling”],“type”:“subscriber(n8n)”,“host”:“``master.123xyz.amazonaws.com``”,“port”:6379,“file”:“redis-client.service.js”,“function”:“createRegularClient”}

The logs indicate that the main procerss is able to connect to my external Redis instance and the Postgres database schema is populated correctly – so it seems it can connect to the database as well.

This is the last log that I see – and I don’t think it’s booting fully. When I try to access the web interface, I only see:

Cannot GET /

The UI is not displayed. If I set EXECUTIONS_MODE to regular – the interface loads properly.

What am I missing here? What is causing the main process not to fully boot and display the web interface? How can I troubleshoot further?

Information on your n8n setup

  • n8n version: 1.105.4
  • Database (default: SQLite): Postgres v17
  • n8n EXECUTIONS_PROCESS setting (default: own, main): queue
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Kubernetes

The problem ended up being a failure to connect to my Elasticache Valkey instance due to TLS – but this was harder to debug than it needed to be because n8n was reporting that it WAS in fact able to connect.

There could be better logging around this.

1 Like

Hi, thank you for sharing. Could explain how did you fix this? Was it adding the env variable QUEUE_BULL_REDIS_TLS = “true“?

Being getting crazy trying to find the issue. I’m using Redis OSS on AWS ElastiCache

I’m using ElastiCache (Valkey) – and I have these env vars set:

    QUEUE_BULL_REDIS_HOST:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: REDIS_ENDPOINT
    QUEUE_BULL_REDIS_PASSWORD:
      valueFrom:
        secretKeyRef:
          name: n8n
          key: REDIS_AUTH_TOKEN
    QUEUE_BULL_REDIS_TLS:
      value: "true"
    QUEUE_BULL_REDIS_PORT:
      value: "6379"

Enabling the redis tls via QUEUE_BULL_REDIS_TLS = “true” fixed the issue, thanks!

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