[GH-ISSUE #5670] [macOS] ICE agent never initializes on arm64 with Homebrew CLI daemon — all peers permanently relay-only #11841

Open
opened 2026-08-05 01:31:16 -04:00 by saavagebueno · 0 comments
Owner

Originally created by @thatgrant on GitHub (Mar 23, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5670

Describe the problem
On macOS (darwin/arm64), the ICE agent never initializes when using the CLI daemon installed via Homebrew. All peer connections fall back to relay permanently. The log repeatedly shows ICE Agent is not initialized yet warnings for every peer, and ICE candidate fields always show -/- in status output. This means any brief relay disruption drops all connections, as there is no P2P fallback.

To Reproduce

  1. Install NetBird via Homebrew on macOS arm64 (brew install netbirdio/tap/netbird)
  2. Start the daemon with netbird service start
  3. Connect to a self-hosted management server with netbird up
  4. Run netbird status --detail — all peers show Connection type: Relayed and ICE candidate (Local/Remote): -/-
  5. Check logs — ICE Agent is not initialized yet warnings appear repeatedly for all peers

Expected behavior
ICE should initialize and attempt P2P hole punching. Peers on the same network or with compatible NAT should connect via P2P, not relay.

Are you using NetBird Cloud?
Self-hosted control plane (management, signal, relay all self-hosted via Docker).

NetBird version
0.67.0 (CLI and daemon)

Is any other VPN software installed?
No.

Debug output

Peers detail:
 newsletter.netbird.anon-PzmaI.domain:
  NetBird IP: 100.88.227.221/32
  Status: Idle
  Connection type: -
  ICE candidate (Local/Remote): -/-

 unterwelt01.netbird.anon-PzmaI.domain:
  Status: Connected
  Connection type: Relayed
  ICE candidate (Local/Remote): -/-

[all 7 connected peers show identical Relayed / -/- ICE candidate pattern]

OS: darwin/arm64
Daemon version: 0.67.0
Interface type: Userspace
Relays: [stun] Available, [rels] Available
Peers count: 7/8 Connected

Debug bundle file key: 5a7b5dc2d6370d0dfa12cb23bbc8c84de0f2fac1057cf041c84d747b5ce35cf5/56c9e20d-1d58-4415-b43c-3fc390ceb110

Additional context

  • macOS interface type is Userspace (expected on macOS, not kernel)
  • STUN is reachable; stunclient confirms independent/port-preserving NAT — P2P should be possible
  • TURN credentials are empty ("turns": []) in the network map
  • Linux peers on the same network successfully establish P2P connections to each other, confirming server-side config is correct — the issue is isolated to the macOS CLI daemon
  • netbird-ui 0.67.0 is also installed; ICE behavior is identical with the UI app running
  • No IPv6 on the primary network interface
  • netbird config set command does not exist in 0.67.0, so DisableIPv6Discovery cannot be changed without editing config files directly (config file location /etc/netbird/config.json does not exist on this install)

Have you tried these troubleshooting steps?

  • Reviewed client troubleshooting
  • Checked for newer NetBird versions
  • Searched for similar issues on GitHub (including closed ones)
  • Restarted the NetBird client
  • Disabled other VPN software
  • Checked firewall settings
Originally created by @thatgrant on GitHub (Mar 23, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5670 **Describe the problem** On macOS (darwin/arm64), the ICE agent never initializes when using the CLI daemon installed via Homebrew. All peer connections fall back to relay permanently. The log repeatedly shows `ICE Agent is not initialized yet` warnings for every peer, and ICE candidate fields always show `-/-` in status output. This means any brief relay disruption drops all connections, as there is no P2P fallback. **To Reproduce** 1. Install NetBird via Homebrew on macOS arm64 (`brew install netbirdio/tap/netbird`) 2. Start the daemon with `netbird service start` 3. Connect to a self-hosted management server with `netbird up` 4. Run `netbird status --detail` — all peers show `Connection type: Relayed` and `ICE candidate (Local/Remote): -/-` 5. Check logs — `ICE Agent is not initialized yet` warnings appear repeatedly for all peers **Expected behavior** ICE should initialize and attempt P2P hole punching. Peers on the same network or with compatible NAT should connect via P2P, not relay. **Are you using NetBird Cloud?** Self-hosted control plane (management, signal, relay all self-hosted via Docker). **NetBird version** 0.67.0 (CLI and daemon) **Is any other VPN software installed?** No. **Debug output** ``` Peers detail: newsletter.netbird.anon-PzmaI.domain: NetBird IP: 100.88.227.221/32 Status: Idle Connection type: - ICE candidate (Local/Remote): -/- unterwelt01.netbird.anon-PzmaI.domain: Status: Connected Connection type: Relayed ICE candidate (Local/Remote): -/- [all 7 connected peers show identical Relayed / -/- ICE candidate pattern] OS: darwin/arm64 Daemon version: 0.67.0 Interface type: Userspace Relays: [stun] Available, [rels] Available Peers count: 7/8 Connected ``` Debug bundle file key: `5a7b5dc2d6370d0dfa12cb23bbc8c84de0f2fac1057cf041c84d747b5ce35cf5/56c9e20d-1d58-4415-b43c-3fc390ceb110` **Additional context** - macOS interface type is `Userspace` (expected on macOS, not kernel) - STUN is reachable; `stunclient` confirms independent/port-preserving NAT — P2P should be possible - TURN credentials are empty (`"turns": []`) in the network map - Linux peers on the same network successfully establish P2P connections to each other, confirming server-side config is correct — the issue is isolated to the macOS CLI daemon - `netbird-ui` 0.67.0 is also installed; ICE behavior is identical with the UI app running - No IPv6 on the primary network interface - `netbird config set` command does not exist in 0.67.0, so `DisableIPv6Discovery` cannot be changed without editing config files directly (config file location `/etc/netbird/config.json` does not exist on this install) **Have you tried these troubleshooting steps?** - [x] Reviewed client troubleshooting - [x] Checked for newer NetBird versions - [x] Searched for similar issues on GitHub (including closed ones) - [x] Restarted the NetBird client - [x] Disabled other VPN software - [x] Checked firewall settings
saavagebueno added the triage-needed label 2026-08-05 01:31:16 -04:00
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11841