Describe the problem/error/question
My self-hosted n8n on Azure Container Apps suddenly shows “Offline” banner in the editor. Workflows still execute successfully (POST /rest/workflows/…/run returns 200), but the editor permanently shows “No network connection”. WebSocket never connects - nothing shows up in Network tab with WS filter.
It worked fine before, I didn’t change anything explicitly.
What is the error message (if any)?
Console error: Could not resolve undefined at useInjectWorkflowId.ts:5:9
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
-
-
n8n version: 2.17.4
-
Database: PostgreSQL (Azure Flexible Server)
-
n8n EXECUTIONS_PROCESS setting: default
-
Running n8n via: Docker on Azure Container Apps with nginx sidecar reverse proxy
-
Operating system: Azure Container Apps (Linux)
Environment variables set:
nginx sidecar forwards WebSocket headers (Connection “upgrade”, Upgrade $http_upgrade).
n8n Editor “Offline” (WebSocket Not Connecting)
Summary
- Editor shows “Offline / No network connection”
- Workflows still execute normally (API works)
- No WebSocket (WS) connection appears in browser dev tools
- Setup: Azure Container Apps + nginx reverse proxy
Likely Cause
This is almost certainly a WebSocket / reverse proxy issue, not n8n itself.
Even if headers are set, Azure Container Apps + nginx often need explicit WebSocket + HTTP/1.1 handling.
Key Things to Fix
1. Ensure nginx is properly configured for WebSockets
Your nginx config should include:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
- Set correct public URL
Add this env variable:
WEBHOOK_URL=https://your-domain.com
Also recommended:
N8N_HOST=your-domain.com
N8N_EDITOR_BASE_URL=https://your-domain.com
Hi all,
I’ve been debugging an “Offline” banner issue for hours and I’m stuck.
IMPORTANT CONTEXT:
This setup was working perfectly last weekend. Nothing was changed on my side (no nginx config changes, no n8n config changes). I only noticed the “Offline” banner this week when I reopened the editor. My Dockerfile uses n8nio/n8n:latest so I suspect a recent n8n release introduced a regression in the push/WebSocket client initialization.
SETUP:
- n8n self-hosted on Azure Container Apps
- nginx reverse proxy sidecar (in same container)
- PostgreSQL 17 Flexible Server
- n8n version: 2.17.4 (pulled from n8nio/n8n:latest)
SYMPTOM:
- Editor loads correctly, workflows visible
- Permanent “Offline / No network connection” banner at top
- Workflows still execute successfully (POST /rest/workflows/…/run returns 200)
- Browser DevTools Network → WS filter: NO WebSocket request attempted at all
- Console error: “Could not resolve undefined at useInjectWorkflowId.ts:5:9”
ENVIRONMENT VARIABLES:
NGINX CONFIG (sidecar):
server {
listen 80;
location = /healthz { return 200 ‘ok’; }
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Origin https://ca-nginx-dev…azurecontainerapps.io;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “Upgrade”;
proxy_read_timeout 3600;
}
}
WHAT I’VE TRIED:
- Tried both “upgrade” and “Upgrade” in Connection header
- Verified env vars are set correctly in the container (az containerapp exec env)
- Restarted revisions
- Rebuilt image multiple times
- Confirmed no config changes on my side between last weekend and now
KEY OBSERVATION:
The n8n client doesn’t even ATTEMPT a WebSocket handshake. No ws:// or wss:// request in Network tab. It only polls /healthz and /rest/settings via HTTP. This suggests the n8n frontend has a bug or config issue preventing it from initiating WebSocket.
Is version 2.17.4 a known broken build? What’s the recommended stable n8n version to pin to? Can anyone confirm which n8n version was released between last Sunday and now?
Thanks!
Hi @glongo10
Your key finding is that no WebSocket request is attempted at all in the Network tab. Nginx timeouts and upgrade headers don’t matter if the client never tries to connect in the first place.
The console error useInjectWorkflowId.ts:5:9 is more likely the cause than a side effect. That composable provides the workflow context to the editor, and if it fails, the push client never initializes.
Since nothing changed on your side and you’re pulling :latest, try pinning to n8nio/n8n:2.16.1 to see if the banner disappears. If it does, you’ve confirmed a 2.17.x regression and it’s worth a GitHub issue with the console error and version diff.