[GH-ISSUE #5589] Default Force Relay to Off #10822

Open
opened 2026-08-05 01:27:23 -04:00 by saavagebueno · 4 comments
Owner

Originally created by @altano on GitHub (Mar 12, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5589

Is your feature request related to a problem? Please describe.
It took me an hour of debugging to realize my iPhone wasn't connecting to peers (stuck "Connecting..." to all of them) because in the Settings -> Advanced menu there was a "Force relay connection" toggled on by default. I guess relaying isn't working in my setup (not sure why) so the phone just got stuck connecting.

Describe the solution you'd like
It should not be the default to force relay connections, and it should definitely not get stuck failing to connect to a relay without any feedback, and all of this while a direct connection is totally possible (through STUN). This shouldn't be the default.

Describe alternatives you've considered
More gracefully handling not being able to relay would be better than nothing. Either warning the user, having an error somewhere in the iOS UI, something like that.

Additional context
Add any other context or screenshots about the feature request here.

Thank you btw, netbird is amazing!

Originally created by @altano on GitHub (Mar 12, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5589 **Is your feature request related to a problem? Please describe.** It took me an hour of debugging to realize my iPhone wasn't connecting to peers (stuck "Connecting..." to all of them) because in the Settings -> Advanced menu there was a "Force relay connection" toggled on by default. I guess relaying isn't working in my setup (not sure why) so the phone just got stuck connecting. **Describe the solution you'd like** It should not be the default to force relay connections, and it should definitely not get stuck failing to connect to a relay without any feedback, and all of this while a direct connection is totally possible (through STUN). This shouldn't be the default. **Describe alternatives you've considered** More gracefully handling not being able to relay would be better than nothing. Either warning the user, having an error somewhere in the iOS UI, something like that. **Additional context** Add any other context or screenshots about the feature request here. Thank you btw, netbird is amazing!
saavagebueno added the feature-request label 2026-08-05 01:27:23 -04:00
Author
Owner

@breadone commented on GitHub (Mar 31, 2026):

Relaying also dramatically lowers connection speed. No idea why this is on by default.

<!-- gh-comment-id:4161426374 --> @breadone commented on GitHub (Mar 31, 2026): Relaying also dramatically lowers connection speed. No idea why this is on by default.
Author
Owner

@rodrigogonegit commented on GitHub (Apr 4, 2026):

Just bumped into this issue on a few android TVs and noticed it was on for many more devices.

<!-- gh-comment-id:4187696746 --> @rodrigogonegit commented on GitHub (Apr 4, 2026): Just bumped into this issue on a few android TVs and noticed it was on for many more devices.
Author
Owner

@MattFromTheFuture commented on GitHub (Apr 9, 2026):

Agreed, I think making 'force relay connection' ON not the default would be great, but also a way to toggle if we can force relaying to be off somehow.

<!-- gh-comment-id:4215526268 --> @MattFromTheFuture commented on GitHub (Apr 9, 2026): Agreed, I think making 'force relay connection' ON not the default would be great, but also a way to toggle if we can force relaying to be off somehow.
Author
Owner

@MichaelUray commented on GitHub (Apr 25, 2026):

+1 to the underlying ask. I've just filed a broader RFC-style proposal at #5989 that addresses the same use case with a different mechanism — instead of flipping the ForceRelay default, it consolidates the existing NB_FORCE_RELAY and NB_ENABLE_EXPERIMENTAL_LAZY_CONN flags into a 5-valued connection-mode enum and adds two new modes (p2p-dynamic, p2p-dynamic-lazy) — eager relay baseline + on-demand P2P upgrade per active peer — that give same-LAN P2P without the eager-ICE battery cost that drove the ForceRelay=true mobile default in the first place (#1354, #2138).

The proposal explicitly does NOT change any default in this round — the goal is to ship the new modes first and revisit defaults once there's field telemetry on their behavior. So this doesn't directly close the default-flip question your issue asks for, but it provides the building block to make that decision properly.

If you think the broader proposal captures your underlying use case, you may want to consider closing this issue in favor of it — or keep it open as the explicit "follow up: flip the default" tracker. Up to you.

<!-- gh-comment-id:4318534725 --> @MichaelUray commented on GitHub (Apr 25, 2026): +1 to the underlying ask. I've just filed a broader RFC-style proposal at #5989 that addresses the same use case with a different mechanism — instead of flipping the `ForceRelay` default, it consolidates the existing `NB_FORCE_RELAY` and `NB_ENABLE_EXPERIMENTAL_LAZY_CONN` flags into a 5-valued `connection-mode` enum and adds two new modes (`p2p-dynamic`, `p2p-dynamic-lazy`) — eager relay baseline + on-demand P2P upgrade per active peer — that give same-LAN P2P without the eager-ICE battery cost that drove the `ForceRelay=true` mobile default in the first place (#1354, #2138). The proposal explicitly does NOT change any default in this round — the goal is to ship the new modes first and revisit defaults once there's field telemetry on their behavior. So this doesn't directly close the default-flip question your issue asks for, but it provides the building block to make that decision properly. If you think the broader proposal captures your underlying use case, you may want to consider closing this issue in favor of it — or keep it open as the explicit "follow up: flip the default" tracker. Up to you.
Sign in to join this conversation.
No Label feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#10822