Cannot get real-time to work on production mode

hello,

I cannot get the real time features to work at all on my production setup. Everything else is working fine except this.

Supervisor.conf:

; Notes:
; priority=1 --> Lower priorities indicate programs that start first and shut down last
; killasgroup=true --> send kill signal to child processes too

; graceful timeout should always be lower than stopwaitsecs to avoid orphan gunicorn workers.
[program:frappe-bench-stg-frappe-web]
command=/home/ubuntuadmin/frappe-bench-stg/env/bin/gunicorn -b 127.0.0.1:8000 -w 5 --max-requests 5000 --max-requests-jitter 500 -t 120 --graceful-timeout 30 frappe.app:application --preload
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/web.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/web.error.log
stopwaitsecs=40
killasgroup=true
user=ubuntuadmin
directory=/home/ubuntuadmin/frappe-bench-stg/sites
startretries=10

[program:frappe-bench-stg-frappe-schedule]
command=/usr/local/bin/bench schedule
priority=3
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/schedule.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/schedule.error.log
user=ubuntuadmin
directory=/home/ubuntuadmin/frappe-bench-stg
startretries=10



[program:frappe-bench-stg-frappe-short-worker]
command=/usr/local/bin/bench worker --queue short,default
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/worker.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/worker.error.log
user=ubuntuadmin
stopwaitsecs=360
directory=/home/ubuntuadmin/frappe-bench-stg
killasgroup=true
numprocs=1
process_name=%(program_name)s-%(process_num)d
startretries=10

[program:frappe-bench-stg-frappe-long-worker]
command=/usr/local/bin/bench worker --queue long,default,short
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/worker.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/worker.error.log
user=ubuntuadmin
stopwaitsecs=1560
directory=/home/ubuntuadmin/frappe-bench-stg
killasgroup=true
numprocs=1
process_name=%(program_name)s-%(process_num)d
startretries=10





[program:frappe-bench-stg-redis-cache]
command=/usr/bin/redis-server /home/ubuntuadmin/frappe-bench-stg/config/redis_cache.conf
priority=1
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/redis-cache.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/redis-cache.error.log
user=ubuntuadmin
directory=/home/ubuntuadmin/frappe-bench-stg/sites
startretries=10

[program:frappe-bench-stg-redis-queue]
command=/usr/bin/redis-server /home/ubuntuadmin/frappe-bench-stg/config/redis_queue.conf
priority=1
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/redis-queue.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/redis-queue.error.log
user=ubuntuadmin
directory=/home/ubuntuadmin/frappe-bench-stg/sites
startretries=10



[program:frappe-bench-stg-node-socketio]
command=/home/ubuntuadmin/.nvm/versions/node/v18.20.7/bin/node /home/ubuntuadmin/frappe-bench-stg/apps/frappe/socketio.js
priority=4
autostart=true
autorestart=true
stdout_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/node-socketio.log
stderr_logfile=/home/ubuntuadmin/frappe-bench-stg/logs/node-socketio.error.log
user=ubuntuadmin
directory=/home/ubuntuadmin/frappe-bench-stg
startretries=10


[group:frappe-bench-stg-web]
programs=frappe-bench-stg-frappe-web,frappe-bench-stg-node-socketio




[group:frappe-bench-stg-workers]
programs=frappe-bench-stg-frappe-schedule,frappe-bench-stg-frappe-short-worker,frappe-bench-stg-frappe-long-worker




[group:frappe-bench-stg-redis]
programs=frappe-bench-stg-redis-cache,frappe-bench-stg-redis-queue

Common Site Conf:

{
 "allow_cors": "*",
 "allow_embedding": true,
 "background_workers": 1,
 "default_site": "ae-d-viesp-stag",
 "developer_mode": 0,
 "dns_multitenant": true,
 "file_watcher_port": 6787,
 "frappe_user": "ubuntuadmin",
 "gunicorn_workers": 5,
 "host_name": "https://viespnext-preprod.vitronic.de",
 "live_reload": true,
 "rebase_on_pull": false,
 "redis_cache": "redis://127.0.0.1:13001",
 "redis_queue": "redis://127.0.0.1:11001",
 "redis_socketio": "redis://127.0.0.1:12001",
 "restart_supervisor_on_update": true,
 "restart_systemd_on_update": false,
 "serve_default_site": true,
 "server_script_enabled": 1,
 "shallow_clone": true,
 "socketio_port": 9000,
 "use_redis_auth": false,
 "webserver_port": 8000,
 "wsgi": {
  "cors_origin": [
   "*"
  ],
  "enable_cors": true
 }
}

Site Conf:

{
 "allow_cors": "*",
 "allow_embedding": true,
 "background_workers": 1,
 "default_site": "ae-d-viesp-stag",
 "developer_mode": 0,
 "dns_multitenant": true,
 "file_watcher_port": 6787,
 "frappe_user": "ubuntuadmin",
 "gunicorn_workers": 5,
 "host_name": "https://viespnext-preprod.vitronic.de",
 "live_reload": true,
 "rebase_on_pull": false,
 "redis_cache": "redis://127.0.0.1:13001",
 "redis_queue": "redis://127.0.0.1:11001",
 "redis_socketio": "redis://127.0.0.1:12001",
 "restart_supervisor_on_update": true,
 "restart_systemd_on_update": false,
 "serve_default_site": true,
 "server_script_enabled": 1,
 "shallow_clone": true,
 "socketio_port": 9000,
 "use_redis_auth": false,
 "webserver_port": 8000,
 "wsgi": {
  "cors_origin": [
   "*"
  ],
  "enable_cors": true
 }
}

I am able to connect the socket but events are not emited back, hence not reflecting any changes. My socketio redis runs on 12001.

Request URL
wss://viespnext-preprod.vitronic.de/socket.io/?EIO=4&transport=websocket&sid=l3mw8HhJ1rLhAmLMAAAG
Request Method
GET
Status Code
101 Switching Protocols
access-control-allow-credentials
true
access-control-allow-origin
https://viespnext-preprod.vitronic.de
connection
upgrade
date
Thu, 17 Jul 2025 13:30:31 GMT
sec-websocket-accept
C7rYCDsqMXk3bYtwugr5XnUysdo=
server
nginx/1.18.0 (Ubuntu)
upgrade
websocket
vary
Origin```

Please let me know if you need any other information I would be very very greatful for any help!


Thank you.

Which reverse proxy do you use? Can you please share your config if you’re using Nginx or Caddy?