Offline: No network connection. Workflow changes will be saved once the connection is restored

Describe the problem/error/question

When I open a workflow, it shows offline in the top right. With the message:
No network connection. Workflow changes will be saved once the connection is restored.
If I reload the page, I can publish for a few moments before offline returns. So it is more of an annoyance than anything, preventing me from working. I searched here and found similar issues for GCP users, but I’m just using a traditional VPS. I did try the solution of adding N8N_ENDPOINT_HEALTH=health, but it didn’t fix the issue for me.

Now I do have Plesk running on this server as well so I had to use the nginx additional directives to configure the reverse proxy. You can’t reserve proxy location / because it’s already being done for Apache. So I used the /app/ path.

I know using N8N_PATH isn’t recommended for reverse proxy, and I am not sure if it is related, as I didn’t have this issue with version 1.x.

We are also using Cloudflare if that matters.

What is the error message (if any)?

Offline: No network connection. Workflow changes will be saved once the connection is restored.

Please share your workflow

Information on your n8n setup

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

This is probably a WebSocket issue with your nginx config. n8n v2+ uses WebSockets for the real-time connection indicator, and running behind a subpath with Plesk can break that. Try adding proxy_http_version 1.1;, proxy_set_header Upgrade $http_upgrade;, and proxy_set_header Connection “upgrade”; to your nginx location block for /app/.

Thanks so much for the quick reply! WebSocket issue is what my assumption is as well. However, I already have those in my proxy config.

location /app/ {
	proxy_pass http://127.0.0.1:5678/;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection 'upgrade';
	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;
	proxy_cache_bypass $http_upgrade;
}

# Redirect common n8n paths that don't get the /app/ prefix
location ~ ^/(rest|api|webhook|form|assets|static|css|js)(.*)$ {
	return 301 /$1$2;
}

# Handle specific files that might be requested from root
location = /favicon.ico {
	return 301 /app/favicon.ico;
}

location = /manifest.json {
	return 301 /app/manifest.json;
}

Also here is my .env as well.

# Host and port configuration
N8N_HOST=127.0.0.1
N8N_PORT=5678

# Protocol and URLs for HTTPS setup
N8N_PROTOCOL=https
WEBHOOK_URL=[Removed]/app/
N8N_EDITOR_BASE_URL=[Removed]/app/
N8N_PATH=/app/
N8N_PROXY_HOPS=1

# Optional: Security settings
N8N_BASIC_AUTH_ACTIVE=false

# Optional: Disable telemetry if desired
N8N_DIAGNOSTICS_ENABLED=false

# Optional: Set timezone
GENERIC_TIMEZONE=America/Chicago

N8N_ENDPOINT_HEALTH=health
NODE_FUNCTION_ALLOW_EXTERNAL=@dice-roller/rpg-dice-roller
NODE_FUNCTION_ALLOW_BUILTIN=*

since you already have the WebSocket headers, the subpath might be the culprit. I’d try setting N8N_EDITOR_BASE_URL=https://yourdomain.com/app/ so n8n knows where to open the WebSocket connection relative to your base path. Without that, it probably tries to connect at / which your Plesk config wouldn’t route correctly.

1 Like

I should have included that part in my reply before, sorry. I already have it that way and if i remove N8N_PATH I get a bunch of too many redirect errors for assets cause they are trying to hit the base URL.

1 Like

Hi @ReeceS

I’d start by checking the reverse proxy setup first. N8N_PROXY_HOPS and WEBHOOK_URL are real n8n settings, and I’d also verify that the X-Forwarded-* headers and websocket support are being passed correctly through Plesk/Cloudflare, since that offline banner usually points to the editor losing its live connection behind the proxy. n8n also warns that using N8N_PATH behind a reverse proxy can cause issues, so if possible, I’d test it on a clean subdomain instead of /app/.