Hi, im running a n8n using docker,
when i try to run a test workflow using webhook, only test url is working but when i try to use prod url, the execution stuck in queue
Hi, im running a n8n using docker,
when i try to run a test workflow using webhook, only test url is working but when i try to use prod url, the execution stuck in queue
Hello syafiq
Hope you are well!
Check: Is the workflow active in the N8N UI?
Confirm: Is the WEBHOOK_URL environment variable set correctly in your Docker setup with the public URL of your N8N? If so, did you restart the container and reactivate the workflow?
Test Connectivity: Use a tool like curl or Postman from an external machine to send a simple POST request to the production URL of the webhook.
Best regards!
yeah, the workflow is active, and i test the webhook using postman
i already try to reactivate the container but yet the issue still the same
the flow only execute when im using staging url.
btw im using ngix as proxy to handle https, is this can be the issue?
Is it generating any error?
If so, send a printout of the error.
Are you using MCP?
so far there is no error from logs
the site work perfectly except when workflow that using the webhook,
can i share the compose file with you?
I apologize for the time away.
I am available to be of assistance and would be happy to receive the composition file!
If you still need help
compose file
services:
redis:
image: redis:latest
container_name: n8n-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: always
environment:
REDIS_PASSWORD: ""
n8n:
image: n8nio/n8n:latest
container_name: n8n
volumes:
- n8n_data:/home/node/.n8n
restart: always
depends_on:
- redis
environment:
EXECUTIONS_MODE: queue
QUEUE_BULL_REDIS_HOST: redis
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_PASSWORD: ""
N8N_HOST: mydomain.com
N8N_PORT: 5678
WEBHOOK_URL: https://mydomain.com
N8N_PROTOCOL: https
EXECUTIONS_PROCESS: 5
N8N_DISABLE_PRODUCTION_MAIN_PROCESS: false
N8N_RUNNERS_ENABLED: true
N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
n8n-worker-1:
image: n8nio/n8n:latest
container_name: n8n-worker-1
restart: always
depends_on:
- redis
environment:
EXECUTIONS_MODE: queue
QUEUE_BULL_REDIS_HOST: redis
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_PASSWORD: ""
N8N_HOST: mydomain.com
N8N_PROTOCOL: https
EXECUTIONS_PROCESS: 5
N8N_DISABLE_PRODUCTION_MAIN_PROCESS: true
N8N_RUNNERS_ENABLED: true
N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
n8n-worker-2:
image: n8nio/n8n:latest
container_name: n8n-worker-2
restart: always
depends_on:
- redis
environment:
EXECUTIONS_MODE: queue
QUEUE_BULL_REDIS_HOST: redis
QUEUE_BULL_REDIS_PORT: 6379
QUEUE_BULL_REDIS_PASSWORD: ""
N8N_HOST: mydomain.com
N8N_PROTOCOL: https
EXECUTIONS_PROCESS: 5
N8N_DISABLE_PRODUCTION_MAIN_PROCESS: true
N8N_RUNNERS_ENABLED: true
N8N_CONCURRENCY_PRODUCTION_LIMIT: 20
nginx:
image: nginx:latest
container_name: n8n-nginx-proxy
ports:
- "80:80" # HTTP port - Cloudflare will connect to this on your server's IP
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf # Mount Nginx config
restart: always
depends_on:
- n8n
- n8n-worker-1
- n8n-worker-2
volumes:
redis_data:
n8n_data:
ngix.conf
upstream n8n_backend {
server n8n:5678;
}
server {
listen 80;
server_name mydomain.com;
location / {
proxy_pass http://n8n_backend; # Proxy to n8n service (HTTP backend)
#proxy_pass http://n8n-app:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; # Important for Cloudflare - tells n8n it's HTTPS
# WebSocket Proxying - IMPORTANT!
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Hi,
I might be wrong but it would surprise me if queue mode would work without an external database (postgresql).
The reason the test would work is that it is run on the main with the SQLite DB. There is something like offload manual workloads from main (,need to lookup the real name) and it will surely fail as well
Another point : you need to set the encryption key so it remain constant and can be used by main and worker
Reg
J.