tailscale / tailscale/tailscale

Android: Complete connectivity loss when transitioning from WiFi to mobile data on OxygenOS 16 / Android 16

Open
#19,783 3 comments 2 reactions 0 assignees View on GitHub
bug dns OS-android OS-linux
Dominant language
Go
Stars
36.5k
Forks
3.2k
Avg merge
2d 3h
Merged PRs (30d)
123

Description

### What is the issue?

On a OnePlus 13 running OxygenOS 16.0.1 **USA version** (Android 16), Tailscale loses connectivity entirely when the device transitions from WiFi to mobile data. The app shows as connected but passes no traffic. This is distinct from #19297 where the device gets stuck on DERP — here the connection is completely dead. The only reliable fix is: Tailscale → three dot menu → Reauthenticate, then force stop, then reopen. Simple disconnect/reconnect is insufficient — reauthentication is specifically required, suggesting the VPN profile itself becomes corrupted, consistent with the Android 16 VPN network stack corruption reported by Mullvad and Proton VPN (https://issuetracker.google.com/issues/447433152).

### Steps to reproduce

1. Connect to Tailnet on WiFi
2. Disable WiFi, forcing device to mobile data
3. Observe Tailscale shows Connected but all traffic fails
4. Attempt to ping Tailscale IPs — no response (timeout)
5. Attempt standard reconnect — does not fix it
6. Only reauthenticate + force stop + reopen restores connectiv

### Are there any recent changes that introduced the issue?

No recent changes I am aware of.

### OS

Android

### OS version

Android 16 / OxygenOS 16.0.1 - OnePlus13 - DERPer running in Incus container NixOS 26.05

### Tailscale version

Android - 1.96.4 / NixOS DERPer 1.98.0 / GO 1.26.2

### Other software

- Custom DERP server only (OmitDefaultRegions: true), fronted by HAProxy on port 443 with SNI routing
- Applied ADB QUIC fix (quic_connection_close_payload_enabled=0) per Mullvad's Android 16 workaround — reduces frequency but does not eliminate the issue
- Confirmed DISCONNECT_VPN / CONNECT_VPN broadcast intents do not clear the corrupted state — reauthentication specifically required
- Related: https://github.com/tailscale/tailscale/issues/19297

### Bug report

BUG-4171e78aaed72871df7979562e69c7dc54e39bb9a6061c3139265f4a24b83e1d-20260517201006Z-9f36e8eb6733dc2d

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.