Node-RED (add-on a0d7b954_nodered) intermittently returns 502 Bad Gateway / 503 Service Unavailable when opened via the Home Assistant Ingress sidebar link, even though the Node-RED process itself is running normally and never restarts/crashes.
Once the issue starts occurring, it is persistent — reloading the page (tested 5+ times) does not help, and it affects every access path equally (see Steps to reproduce / diagnostics below), so it is not related to any external reverse proxy, DNS name, or browser session.
Steps to reproduce
Node-RED add-on is running normally and has been up for an extended period (30+ minutes, no restarts).
Open Home Assistant → Sidebar → Node-RED.
Browser receives 502 Bad Gateway (nginx) or 503 Service Unavailable (from HA Core / Ingress).
Reloading the page repeatedly does not resolve it.
ha supervisor restart does not resolve it either.
Diagnostics performed
I've done extensive isolation testing before filing this, ruling out external factors:
External reverse proxy (Zoraxy) is not the cause — confirmed with curl directly against 127.0.0.1:8123 / the HA host IP with the Host header set to both the external domain and the local IP: both fail identically.
Cookies / Authelia are not the cause — an unrelated authelia_session cookie (domain-scoped from an unrelated VPS) was ruled out; Authelia's own logs show zero access attempts for this domain.
Network / latency is not the cause — ping -i 0.2 to the HAOS VM during reproduction showed 0% packet loss, RTT avg 0.153 ms.
RAM / CPU are not the cause — ha apps stats a0d7b954_nodered showed 0.02% CPU, 146 MB / 6 GB memory limit used at the time of failure.
Not a stale/expired ingress session — reproduced with a freshly issued ingress_session cookie value, copied immediately from a failing browser request and replayed via curl within seconds.
Not an old/zombie browser tab — reproduced in a completely fresh, previously-unused browser with no other HA/Node-RED tabs ever opened.
Supervisor is up to date (2026.07.3) and reports no issues (ha resolution info → issues: [], unhealthy: [], unsupported: []).
ha supervisor restart did not resolve the issue.
Key finding: identical failure via curl regardless of Host header
Direct requests from the HAOS host to HA Core, bypassing the browser and any external proxy entirely, fail identically whether the Host header is the external domain or the local IP:
$ curl -v http://192.168.7.111:8123/api/hassio_ingress/a0d7b954_nodered/ \
-H "Host: homeassistant.mydomain.com" \
-H "Cookie: ingress_session=<fresh_valid_session>"
...
< HTTP/1.1 503 Service Unavailable
$ curl -v http://192.168.7.111:8123/api/hassio_ingress/a0d7b954_nodered/ \
-H "Host: 192.168.7.111:8123" \
-H "Cookie: ingress_session=<same_fresh_valid_session>"
...
< HTTP/1.1 503 Service Unavailable
This proves the failure is not related to the Host header, external reverse proxy, or DNS — Ingress itself considers the add-on unavailable regardless of the request path.
Supervisor log during failures
2026-07-21 11:05:40.680 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
2026-07-21 11:05:42.796 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
2026-07-21 11:05:43.843 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
2026-07-21 11:05:50.030 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
2026-07-21 11:06:51.947 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
2026-07-21 11:06:53.002 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
2026-07-21 11:06:53.598 WARNING (MainThread) [supervisor.api.ingress] Ingress for a0d7b954_nodered not available
Node-RED add-on log at startup (for reference — no errors, no crash)
Welcome to Node-RED
===================
21 Jul 09:15:11 - [info] Node-RED version: v5.0.0
21 Jul 09:15:11 - [info] Node.js version: v24.16.0
21 Jul 09:15:11 - [info] Linux 6.18.37-haos x64 LE
21 Jul 09:15:11 - [info] Loading palette nodes
21 Jul 09:15:11 - [info] Node-RED Contrib Theme Collection version: v5.0.1
21 Jul 09:15:12 - [info] node-red-contrib-home-assistant-websocket v0.80.3 nodes initialized
21 Jul 09:15:12 - [info] Settings file : /etc/node-red/config.js
21 Jul 09:15:12 - [info] Context store : 'default' [module=memory]
21 Jul 09:15:12 - [info] User directory : /config/
21 Jul 09:15:12 - [warn] Projects disabled : editorTheme.projects.enabled=false
21 Jul 09:15:12 - [info] Flows file : /config/flows.json
21 Jul 09:15:12 - [info] Server now running at http://127.0.0.1:46836/
21 Jul 09:15:12 - [info] Starting flows
21 Jul 09:15:12 - [info] Started flows
21 Jul 09:15:12 - [info] [server:Home Assistant] Connecting to http://supervisor/core
21 Jul 09:15:12 - [info] [server:Home Assistant] Connected to http://supervisor/core
[09:15:12] INFO: Starting NGinx...
First observed symptom — internal nginx (inside the add-on container) error
Before the Ingress-level "not available" state was identified, the browser-facing error was traced to the add-on's own internal nginx failing to get a response from the Node-RED process itself, even though Node-RED had been running for ~1 minute with no errors:
2026/07/21 09:16:21 [error] 442#442: *7 upstream prematurely closed connection while reading response header from upstream, client: 172.30.32.2, server: a0d7b954-nodered, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:46836/", host: "homeassistant.mydomain.com", referrer: "https://homeassistant.mydomain.com/a0d7b954_nodered"
### System information
Supervisor: 2026.07.3
Home Assistant Core: 2026.7.1
Home Assistant OS: 18.1
Node-RED add-on version: 22.0.0
Deployment: HAOS as a KVM/Proxmox VM (chassis: vm, virtualization: kvm)
Add-on config excerpt: host_network: true, ingress: true, ingress_panel: true, watchdog: true
### Proxy
Zoraxy: v.3.3.4
Websockets enabled
### configuration.yaml from HA
http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.7.45
- 172.30.32.0/24
- cors_allowed_origins:
- https://homeassistant.mydomain.com
Additional context
Accessing Home Assistant via the local IP directly and opening Node-RED from the sidebar appeared to work, while accessing via an internally-resolved custom domain (through a local reverse proxy that never leaves the LAN) consistently failed — this initially looked like a proxy/DNS issue. However, direct curl testing (see above) proved both access paths fail identically at the Ingress layer when tested back-to-back with the same session — the earlier "IP works" observation was very likely a timing coincidence, catching Ingress in a working window rather than a real behavioral difference between the two paths.
Given the extensive isolation testing above, this appears to be an issue in the Supervisor's Ingress availability check for this specific add-on (possibly related to host_network: true), rather than a Node-RED or network configuration issue on my end. Happy to provide further debug logs (homeassistant.components.hassio / homeassistant.components.http at debug level) or test any suggested fix.
Node-RED (add-on a0d7b954_nodered) intermittently returns 502 Bad Gateway / 503 Service Unavailable when opened via the Home Assistant Ingress sidebar link, even though the Node-RED process itself is running normally and never restarts/crashes.
Once the issue starts occurring, it is persistent — reloading the page (tested 5+ times) does not help, and it affects every access path equally (see Steps to reproduce / diagnostics below), so it is not related to any external reverse proxy, DNS name, or browser session.
Steps to reproduce
Node-RED add-on is running normally and has been up for an extended period (30+ minutes, no restarts).
Open Home Assistant → Sidebar → Node-RED.
Browser receives 502 Bad Gateway (nginx) or 503 Service Unavailable (from HA Core / Ingress).
Reloading the page repeatedly does not resolve it.
ha supervisor restart does not resolve it either.
Diagnostics performed
I've done extensive isolation testing before filing this, ruling out external factors:
Key finding: identical failure via curl regardless of Host header
Direct requests from the HAOS host to HA Core, bypassing the browser and any external proxy entirely, fail identically whether the Host header is the external domain or the local IP:
This proves the failure is not related to the Host header, external reverse proxy, or DNS — Ingress itself considers the add-on unavailable regardless of the request path.
Supervisor log during failures
Node-RED add-on log at startup (for reference — no errors, no crash)
First observed symptom — internal nginx (inside the add-on container) error
Before the Ingress-level "not available" state was identified, the browser-facing error was traced to the add-on's own internal nginx failing to get a response from the Node-RED process itself, even though Node-RED had been running for ~1 minute with no errors:
2026/07/21 09:16:21 [error] 442#442: *7 upstream prematurely closed connection while reading response header from upstream, client: 172.30.32.2, server: a0d7b954-nodered, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:46836/", host: "homeassistant.mydomain.com", referrer: "https://homeassistant.mydomain.com/a0d7b954_nodered"### System information
### Proxy
### configuration.yaml from HA
Additional context