[GH-ISSUE #5909] NetBird Self-Hosted ECS + Nginx Proxy: Peer Registers → Immediate Disconnect (502 Relay + Signal Header) #11271

Open
opened 2026-08-05 01:29:08 -04:00 by saavagebueno · 2 comments
Owner

Originally created by @fourass on GitHub (Apr 16, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5909

Describe the problem
netbird up --management-url https:/mynetbrid.com:443 --setup-key $SETUP_KEY
Error: daemon up failed: call service up method: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Peer registers with setup key, tunnel starts (wt0), but immediately disconnects. Dashboard shows "Disconnected". Relay: 502 WebSocket + EOF loop. Signal: "no registration header" every 60s. netbird status hangs.

To Reproduce
Deploy NetBird v0.68.3 on AWS ECS on EC2 w/ nginx reverse proxy
netbird up --management-url https://mynetbird.com:443 --setup-key XXX -F
Tunnel up → immediate disconnect
Dashboard: Disconnected
Logs: 502 relay + EOF + Signal disconnects

Expected behavior
Peer stays Connected (Relay) in dashboard, stable connections.

Are you using NetBird Cloud?
Self-hosted AWS ECS on EC2 (3 containers: nginx proxy, backend, dashboard)

NetBird version

Client: v0.68.3 (Linux/macOS)
Backend: netbirdio/netbird:v2.34.0
Dashboard: netbirdio/dashboard:v2.34.0

Is any other VPN software installed?
No

Debug output

netbird status -dA : **hangs forever**
netbird debug for 1m -AS -U : **context deadline exceeded**

Key logs:

netbird up --management-url https:/mynetbrid.com:443 --setup-key $SETUP_KEY 
Error: daemon up failed: call service up method: rpc error: code = DeadlineExceeded desc = context deadline exceeded
ERRO relay WS: expected 101 got **502**  
ERRO relay: **failed to read frame header: EOF** (loop)
WARN signal: **"didn't receive registration header"**
ERRO daemon up: **DeadlineExceeded**
ERRO tunnel: **device busy** / **unix socket in use**

Backend logs:

peer connected ✓ (server-side)
management: **"no peer auth method provided"**

Additional context
Architecture:

ALB (gRPC 443 + HTTP/1.1) → nginx proxy → NetBird backend (80) + Dashboard (8080 localhost)
ECS Task: nginx(9443→dynamic), backend(80→dynamic,3478 UDP), dashboard(internal)

nginx config (curl gRPC tests pass grpc-status:12):

location ~ ^/(signalexchange|management)/ { grpc_pass grpc://netbird_server; grpc_set_header Authorization $http_authorization; ... }
location ~ ^/(relay|ws-proxy)/ { proxy_pass http://netbird_server; proxy_set_header Upgrade $http_upgrade; proxy_set_header Authorization $http_authorization; ... }

Issues:
Relay 502 → WebSocket handshake fails
Signal "no registration header" despite gRPC proxy working
Daemon hangs (status -dA, debug) → context timeout

Additional logs

2026-04-17T01:07:12.476Z ERRO shared/relay/client/dialer/ws/ws.go:48: failed to dial to Relay server ‘wss://mynetbird.com:443’: failed to WebSocket dial: expected handshake response status code 101 but got 502
2026-04-17T01:07:12.476Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via WS: failed to WebSocket dial: expected handshake response status code101 but got 502
2026-04-17T01:07:16.459Z ERRO shared/relay/client/dialer/quic/quic.go:66: failed to dial to Relay server via QUIC : timeout: no recent network activity
2026-04-17T01:07:16.459Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via quic: timeout: no recent network activity
2026-04-17T01:07:16.459Z ERRO client/internal/connect.go:353: failed to connect to any relay server: all attempts failed
2026-04-17T01:07:16.473Z ERRO client/internal/engine.go:517: failed creating tunnel interface wt0: [error creating tun device: device or resource busy]
2026-04-17T01:07:18.092Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:07:21.218Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:07:21.493Z WARN client/iface/iface.go:237: failed to remove WireGuard interface wt0: timeout when waiting for interface wt0 to be removed
2026-04-17T01:07:21.508Z ERRO client/internal/connect.go:375: error while starting Netbird Connection Engine: create wg interface: error creating tun device: device or resource busy
2026-04-17T01:07:23.319Z ERRO shared/relay/client/dialer/ws/ws.go:48: failed to dial to Relay server ‘wss://mynetbird.com:443’: failed to WebSocket dial: expected handshake response status code 101 but got 502
2026-04-17T01:07:23.319Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via WS: failed to WebSocket dial: expected handshake response status code101 but got 502
2026-04-17T01:07:27.302Z ERRO shared/relay/client/dialer/quic/quic.go:66: failed to dial to Relay server via QUIC  timeout: no recent network activity
2026-04-17T01:07:27.302Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via quic: timeout: no recent network activity
2026-04-17T01:07:27.302Z ERRO client/internal/connect.go:353: failed to connect to any relay server: all attempts failed
2026-04-17T01:07:27.330Z ERRO client/iface/configurer/usp.go:316: failed to open uapi listener: unix socket in use
2026-04-17T01:07:27.346Z ERRO client/firewall/iptables/router_linux.go:119: failed to clean up rules from FORWARD chain: clear and delete chain NETBIRD-RT-FWD-IN in table filter: running [/sbin/iptables -t filter -X NETBIRD-RT-FWD-IN --wait]: exit status 1: iptables: Too many links.
2026-04-17T01:07:27.347Z WARN client/firewall/create_linux.go:55: failed to create native firewall: init firewall: router init: create containers: create chain NETBIRD-RT-FWD-IN in table filter: running [/sbin/iptables -t filter -N NETBIRD-RT-FWD-IN --wait]: exit status 1: iptables: Chain already exists.
2026-04-17T01:07:28.925Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:07:32.054Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:07:35.180Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:07:38.305Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:07:41.427Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF
2026-04-17T01:08:27.355Z WARN shared/signal/client/grpc.go:153: disconnected from the Signal Exchange due to an error: didn’t receive a registration header from the Signal server whille connecting to the streams

Have you tried these troubleshooting steps?
Client troubleshooting guide

  • Latest versions
  • GitHub issues (#2880 relay EOF, signal disconnects, nginx proxy)
  • Restarted client + containers
  • No other VPNs
  • Firewall allows 443 TCP/UDP
  • curl gRPC tests pass → proxy works
    registration + tunnel up working, just disconnects immediately. Full nginx/ECS config available.
Originally created by @fourass on GitHub (Apr 16, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5909 **Describe the problem** `netbird up --management-url https:/mynetbrid.com:443 --setup-key $SETUP_KEY ` **Error: daemon up failed: call service up method: rpc error: code = DeadlineExceeded desc = context deadline exceeded** Peer registers with setup key, tunnel starts (wt0), but immediately disconnects. Dashboard shows "**Disconnected**". Relay: 502 WebSocket + EOF loop. Signal: "no registration header" every 60s. netbird status hangs. **To Reproduce** Deploy NetBird v0.68.3 on AWS ECS on EC2 w/ nginx reverse proxy netbird up --management-url https://mynetbird.com:443 --setup-key XXX -F Tunnel up → immediate disconnect Dashboard: Disconnected Logs: 502 relay + EOF + Signal disconnects **Expected behavior** Peer stays Connected (Relay) in dashboard, stable connections. **Are you using NetBird Cloud?** Self-hosted AWS ECS on EC2 (3 containers: nginx proxy, backend, dashboard) **NetBird version** ``` Client: v0.68.3 (Linux/macOS) Backend: netbirdio/netbird:v2.34.0 Dashboard: netbirdio/dashboard:v2.34.0 ``` **Is any other VPN software installed?** No **Debug output** ``` netbird status -dA : **hangs forever** netbird debug for 1m -AS -U : **context deadline exceeded** ``` **Key logs:** ``` netbird up --management-url https:/mynetbrid.com:443 --setup-key $SETUP_KEY Error: daemon up failed: call service up method: rpc error: code = DeadlineExceeded desc = context deadline exceeded ERRO relay WS: expected 101 got **502** ERRO relay: **failed to read frame header: EOF** (loop) WARN signal: **"didn't receive registration header"** ERRO daemon up: **DeadlineExceeded** ERRO tunnel: **device busy** / **unix socket in use** ``` **Backend logs:** ``` peer connected ✓ (server-side) management: **"no peer auth method provided"** ``` **Additional context** **Architecture:** ``` ALB (gRPC 443 + HTTP/1.1) → nginx proxy → NetBird backend (80) + Dashboard (8080 localhost) ECS Task: nginx(9443→dynamic), backend(80→dynamic,3478 UDP), dashboard(internal) ``` **nginx config (curl gRPC tests pass grpc-status:12):** ``` location ~ ^/(signalexchange|management)/ { grpc_pass grpc://netbird_server; grpc_set_header Authorization $http_authorization; ... } location ~ ^/(relay|ws-proxy)/ { proxy_pass http://netbird_server; proxy_set_header Upgrade $http_upgrade; proxy_set_header Authorization $http_authorization; ... } ``` **Issues:** Relay 502 → WebSocket handshake fails Signal "no registration header" despite gRPC proxy working Daemon hangs (status -dA, debug) → context timeout **Additional logs** ``` 2026-04-17T01:07:12.476Z ERRO shared/relay/client/dialer/ws/ws.go:48: failed to dial to Relay server ‘wss://mynetbird.com:443’: failed to WebSocket dial: expected handshake response status code 101 but got 502 2026-04-17T01:07:12.476Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via WS: failed to WebSocket dial: expected handshake response status code101 but got 502 2026-04-17T01:07:16.459Z ERRO shared/relay/client/dialer/quic/quic.go:66: failed to dial to Relay server via QUIC : timeout: no recent network activity 2026-04-17T01:07:16.459Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via quic: timeout: no recent network activity 2026-04-17T01:07:16.459Z ERRO client/internal/connect.go:353: failed to connect to any relay server: all attempts failed 2026-04-17T01:07:16.473Z ERRO client/internal/engine.go:517: failed creating tunnel interface wt0: [error creating tun device: device or resource busy] 2026-04-17T01:07:18.092Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:07:21.218Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:07:21.493Z WARN client/iface/iface.go:237: failed to remove WireGuard interface wt0: timeout when waiting for interface wt0 to be removed 2026-04-17T01:07:21.508Z ERRO client/internal/connect.go:375: error while starting Netbird Connection Engine: create wg interface: error creating tun device: device or resource busy 2026-04-17T01:07:23.319Z ERRO shared/relay/client/dialer/ws/ws.go:48: failed to dial to Relay server ‘wss://mynetbird.com:443’: failed to WebSocket dial: expected handshake response status code 101 but got 502 2026-04-17T01:07:23.319Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via WS: failed to WebSocket dial: expected handshake response status code101 but got 502 2026-04-17T01:07:27.302Z ERRO shared/relay/client/dialer/quic/quic.go:66: failed to dial to Relay server via QUIC timeout: no recent network activity 2026-04-17T01:07:27.302Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/dialer/race_dialer.go:79: failed to dial via quic: timeout: no recent network activity 2026-04-17T01:07:27.302Z ERRO client/internal/connect.go:353: failed to connect to any relay server: all attempts failed 2026-04-17T01:07:27.330Z ERRO client/iface/configurer/usp.go:316: failed to open uapi listener: unix socket in use 2026-04-17T01:07:27.346Z ERRO client/firewall/iptables/router_linux.go:119: failed to clean up rules from FORWARD chain: clear and delete chain NETBIRD-RT-FWD-IN in table filter: running [/sbin/iptables -t filter -X NETBIRD-RT-FWD-IN --wait]: exit status 1: iptables: Too many links. 2026-04-17T01:07:27.347Z WARN client/firewall/create_linux.go:55: failed to create native firewall: init firewall: router init: create containers: create chain NETBIRD-RT-FWD-IN in table filter: running [/sbin/iptables -t filter -N NETBIRD-RT-FWD-IN --wait]: exit status 1: iptables: Chain already exists. 2026-04-17T01:07:28.925Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:07:32.054Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:07:35.180Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:07:38.305Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:07:41.427Z ERRO [relay: rels://mynetbird.com:443] shared/relay/client/client.go:410: failed to read message from relay server: failed to get reader: failed to read frame header: EOF 2026-04-17T01:08:27.355Z WARN shared/signal/client/grpc.go:153: disconnected from the Signal Exchange due to an error: didn’t receive a registration header from the Signal server whille connecting to the streams ``` **Have you tried these troubleshooting steps?** Client troubleshooting guide - [x] Latest versions - [x] GitHub issues (#2880 relay EOF, signal disconnects, nginx proxy) - [x] Restarted client + containers - [x] No other VPNs - [x] Firewall allows 443 TCP/UDP - [x] curl gRPC tests pass → proxy works **registration + tunnel up working, just disconnects immediately. Full nginx/ECS config available.**
Author
Owner

@byCrookie commented on GitHub (May 5, 2026):

I also have problems with the signal server. It works with a client on the same server as selfhosted netbird, but not on a client on a different machine. The log looks a little different tho. It think i was on 0.68.x or 0.69.x and upgraded to 0.70.4.

Netbird Podman with traefik like in docs.

May 05 23:37:02 mini netbird-client[670908]: 2026-05-05T21:37:02.752Z INFO client/internal/conn_mgr.go:62: lazy connection manager is disabled
May 05 23:37:12 mini netbird-client[670908]: 2026-05-05T21:37:12.754Z INFO client/internal/portforward/manager.go:95: port forwarding setup: discover gateway: no NAT found
May 05 23:37:52 mini netbird-client[670908]: Error: daemon up failed: call service up method: rpc error: code = DeadlineExceeded desc = context deadline exceeded
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52+00:00 INFO /usr/local/bin/netbird-entrypoint.sh:24: Shutting down NetBird daemon...
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52+00:00 INFO /usr/local/bin/netbird-entrypoint.sh:26: terminating service process IDs: '2'
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z INFO client/cmd/root.go:208: shutdown signal received
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z WARN shared/signal/client/grpc.go:155: disconnected from the Signal Exchange due to an error: didn't receive a registration header from the Signal server whille connecting to the streams
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z ERRO shared/signal/client/grpc.go:187: exiting the Signal service connection retry loop due to the unrecoverable error: context canceled
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z INFO client/internal/engine.go:1174: connecting to Management Service updates stream
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:1092: connecting to Management Service jobs stream
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:1982: Network monitor is disabled, not starting
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/connect.go:386: Netbird engine started, the IP is: 100.74.92.58/16
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/connect.go:406: ensuring wt0 is removed, Netbird engine context cancelled
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:309: Network monitor: stopped
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:332: cleaning up status recorder states
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z WARN shared/management/client/grpc.go:218: exiting the Management service connection retry loop due to the unrecoverable error: context canceled
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:647: closing all peer connections
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:407: start to Relay read loop exit
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:655: waiting for read loop to close
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:657: relay connection closed
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z WARN [relay: rels://netbird.***.com:443] shared/relay/client/client.go:638: relay connection was already marked as not running
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.412Z WARN shared/management/client/grpc.go:218: exiting the Management service connection retry loop due to the unrecoverable error: context canceled
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.914Z INFO client/internal/engine.go:385: stopped Netbird Engine
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.914Z INFO client/internal/engine.go:309: Network monitor: stopped
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.915Z INFO client/internal/engine.go:332: cleaning up status recorder states
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.914Z INFO client/internal/connect.go:416: stopped NetBird client
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.915Z INFO client/internal/engine.go:385: stopped Netbird Engine
May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.915Z INFO client/server/server.go:886: service is down
May 05 23:37:56 mini netbird-client[670908]: 2026-05-05T21:37:56.764Z INFO client/cmd/service_controller.go:100: stopped NetBird service
<!-- gh-comment-id:4383372918 --> @byCrookie commented on GitHub (May 5, 2026): I also have problems with the signal server. It works with a client on the same server as selfhosted netbird, but not on a client on a different machine. The log looks a little different tho. It think i was on 0.68.x or 0.69.x and upgraded to 0.70.4. Netbird Podman with traefik like in docs. ``` May 05 23:37:02 mini netbird-client[670908]: 2026-05-05T21:37:02.752Z INFO client/internal/conn_mgr.go:62: lazy connection manager is disabled May 05 23:37:12 mini netbird-client[670908]: 2026-05-05T21:37:12.754Z INFO client/internal/portforward/manager.go:95: port forwarding setup: discover gateway: no NAT found May 05 23:37:52 mini netbird-client[670908]: Error: daemon up failed: call service up method: rpc error: code = DeadlineExceeded desc = context deadline exceeded May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52+00:00 INFO /usr/local/bin/netbird-entrypoint.sh:24: Shutting down NetBird daemon... May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52+00:00 INFO /usr/local/bin/netbird-entrypoint.sh:26: terminating service process IDs: '2' May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z INFO client/cmd/root.go:208: shutdown signal received May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z WARN shared/signal/client/grpc.go:155: disconnected from the Signal Exchange due to an error: didn't receive a registration header from the Signal server whille connecting to the streams May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z ERRO shared/signal/client/grpc.go:187: exiting the Signal service connection retry loop due to the unrecoverable error: context canceled May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z INFO client/internal/engine.go:1174: connecting to Management Service updates stream May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:1092: connecting to Management Service jobs stream May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:1982: Network monitor is disabled, not starting May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/connect.go:386: Netbird engine started, the IP is: 100.74.92.58/16 May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/connect.go:406: ensuring wt0 is removed, Netbird engine context cancelled May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:309: Network monitor: stopped May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z INFO client/internal/engine.go:332: cleaning up status recorder states May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.398Z WARN shared/management/client/grpc.go:218: exiting the Management service connection retry loop due to the unrecoverable error: context canceled May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.397Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:647: closing all peer connections May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:407: start to Relay read loop exit May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:655: waiting for read loop to close May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z INFO [relay: rels://netbird.***.com:443] shared/relay/client/client.go:657: relay connection closed May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.399Z WARN [relay: rels://netbird.***.com:443] shared/relay/client/client.go:638: relay connection was already marked as not running May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.412Z WARN shared/management/client/grpc.go:218: exiting the Management service connection retry loop due to the unrecoverable error: context canceled May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.914Z INFO client/internal/engine.go:385: stopped Netbird Engine May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.914Z INFO client/internal/engine.go:309: Network monitor: stopped May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.915Z INFO client/internal/engine.go:332: cleaning up status recorder states May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.914Z INFO client/internal/connect.go:416: stopped NetBird client May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.915Z INFO client/internal/engine.go:385: stopped Netbird Engine May 05 23:37:52 mini netbird-client[670908]: 2026-05-05T21:37:52.915Z INFO client/server/server.go:886: service is down May 05 23:37:56 mini netbird-client[670908]: 2026-05-05T21:37:56.764Z INFO client/cmd/service_controller.go:100: stopped NetBird service ```
Author
Owner

@timothy-cloudopsguy commented on GitHub (May 19, 2026):

According to the doc here,

The VM must be publicly accessible on TCP ports 80 and 443, and UDP port 3478.

Port 80 is just for Lets Encrypt, so you can ignore that port if you're using something else to make your SSL certs.

I don't see anywhere in your config where you have UDP 3478 open to the ECS service. You'll need to put that behind an AWS NLB as ALBs won't pass UDP traffic. So a new Target Group on UDP 3478 w/ a healthcheck pointing to the TCP/HTTP port should suffice.

<!-- gh-comment-id:4489905216 --> @timothy-cloudopsguy commented on GitHub (May 19, 2026): According to the [doc here](https://docs.netbird.io/selfhosted/selfhosted-quickstart#infrastructure-requirements), **The VM must be publicly accessible on TCP ports 80 and 443, and UDP port 3478.** Port 80 is just for Lets Encrypt, so you can ignore that port if you're using something else to make your SSL certs. I don't see anywhere in your config where you have UDP 3478 open to the ECS service. You'll need to put that behind an AWS NLB as ALBs won't pass UDP traffic. So a new Target Group on UDP 3478 w/ a healthcheck pointing to the TCP/HTTP port should suffice.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11271