Skip to content

Visor doesn't handle network switching gracefully on mobile (SIM data ↔ Wi-Fi) and (SIM data ↔ SIM data) #3947

Description

@mrpalide

Description:
When the underlying network changes, Skywire's visor rebinds all services, which is effectively equivalent to a full restart. This is inherent to how Skywire currently works and there's no mechanism to avoid it. As a partial mitigation, switchkill can be used to prevent traffic from leaking over the underlying network instead of going through Skywire during this transition.

On mobile this becomes a real usability problem:
Switching between multiple BTS/cell towers is fine, since mobile networks are designed to handle that without dropping the connection.
Switching between SIM data and Wi-Fi is not handled well. When this happens, the VPN disconnects automatically, and the VPN node list frequently fails to reload, leaving the user with no visible nodes to connect to. The only workaround right now is restarting the core.

Steps to reproduce:

  • Connect to a Skywire VPN node on mobile while on Wi-Fi.
  • Switch from Wi-Fi to SIM data (or vice versa).
  • Observe that the VPN disconnects and the node list often fails to reload.
  • Restarting the core is currently required to recover.

Expected behavior:
Network interface changes (SIM ↔ Wi-Fi and SIM ↔ SIM) should not leave the visor in a broken state requiring a manual restart. Ideally the visor should detect the interface change and rebind/reconnect automatically, or at minimum reliably reload the VPN node list without user intervention.

Current behavior:
VPN disconnects on network switch and the node list frequently fails to reload, requiring a full core restart to recover.

Needs investigation:
Whether the rebind-on-network-change behavior can be scoped to be less disruptive on mobile specifically.
Why the VPN node list fails to reload after a network switch, this may be a separate underlying bug from the rebind behavior itself.
Whether switchkill's current behavior is sufficient during the transition window or needs adjustment for mobile.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmobileissue pertaining to mobile port or mobile app (android / IOS)needs further investigationWe should probably look further into this before concluding.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions