Most Android VPN issues are not random. They usually fit one of a small number of patterns: the VPN fails only on WiFi, it connects but traffic does not move, a hotel login page breaks the flow, the network is restrictive, or Android itself is interfering through DNS, battery rules, or vendor-specific behavior.
That is why this page is structured as a routing hub instead of another narrow fix guide. The goal is to help you identify the exact symptom first, then open the right deeper guide without changing ten settings blindly.
If you are not troubleshooting yet and just need a clean baseline, start with how to set up a VPN on Android or review the best VPN settings for Android before coming back here.
Quick answer
- If the VPN fails only on WiFi, open VPN not working on WiFi on Android.
- If Android says Connected but nothing loads, open VPN connected but no internet on Android.
- If the issue starts on hotel, airport, or cafe networks, open VPN for hotel WiFi on Android and VPN for public Wi-Fi on Android.
- If the network looks filtered or restrictive, compare WireGuard on Android with VLESS on Android and then open XRay/VLESS restrictive-network troubleshooting.
- If you need the broader decision page first, open Best VPN Protocol for Android in 2026.
- If the problem is happening on Android TV, open VPN for Android TV: Troubleshooting Guide or the Android TV setup guide.
- If only one app fails, do not rebuild your whole setup first. Check split tunneling on Android.
Symptom routing table
| Symptom | Most likely cause | Open this first |
|---|---|---|
| Works on mobile data but not WiFi | router rules, captive portal, DNS, restrictive WiFi | VPN not working on WiFi on Android |
| Says Connected but apps do not load | DNS conflict, stale routing, captive portal, restrictive network | VPN connected but no internet on Android |
| Breaks on hotel WiFi | captive portal and setup order | VPN for hotel WiFi on Android |
| Fails on school or office WiFi | managed or filtered network | School or office WiFi blocks VPN on Android |
| WireGuard keeps failing on one network | protocol mismatch with restrictive WiFi | WireGuard vs XRay (VLESS/Reality) on Android |
| VPN drops when WiFi changes to mobile data | handoff instability or app recovery issue | VPN disconnects on Android network switches |
| Android TV app missing, playback fails, or TV-specific setup breaks | Android TV compatibility, routing, or network behavior | VPN for Android TV: Troubleshooting Guide |
| Only one app breaks under VPN | app-level incompatibility | Split tunneling on Android |
| Nothing works until Private DNS is disabled | Android DNS conflict | Private DNS conflicts with Android VPNs |
| Always-On or kill switch traps the device offline | Android enforcement settings | Always-On VPN and Kill Switch on Android |
| VPN drains battery or keeps reconnecting in the background | vendor battery policy or unstable recovery | VPN battery drain on Android |
| Xiaomi, MIUI, or HyperOS keeps breaking the tunnel | aggressive vendor background controls | Fix Xiaomi VPN reconnect loops |
| Split tunneling and kill switch behave unpredictably together | routing conflict between app rules and strict enforcement | Split tunneling conflicts with kill switch |
1. VPN works on mobile data but not WiFi
This is one of the most common Android VPN patterns. The VPN looks fine on LTE or 5G, then fails the moment the phone joins home WiFi, hotel WiFi, school WiFi, or office WiFi.
That usually means the WiFi network is the variable that changed, not the app. Typical causes are captive portals, DNS filtering, router policies, or WiFi networks that limit encrypted traffic.
Open VPN not working on WiFi on Android first. If the same network is public or shared, keep it paired with VPN for public Wi-Fi on Android.
2. Android says “Connected” but nothing loads
This symptom confuses people because the tunnel looks up, but apps still hang. In practice, it often means the connection exists at the VPN layer while traffic inside it is blocked by DNS, captive portal state, or stale routing after a network change.
The fastest route is VPN connected but no internet on Android. If the failure began after moving between networks, compare it with VPN disconnects on Android network switches.
3. Hotel, airport, or cafe WiFi breaks the VPN
Travel WiFi is not just “normal WiFi in another place”. It often inserts a captive portal before the internet is fully available, and if the VPN starts too early, the whole flow looks broken even though the real issue is setup order.
For hotel-heavy travel problems, open VPN for hotel WiFi on Android. For the broader travel pattern, also review VPN for travel on Android.
4. School or office WiFi blocks the VPN completely
Managed networks behave differently from home routers. They can apply filtering, deep inspection, firewall policies, or protocol-specific restrictions that ordinary troubleshooting advice will not solve.
If the failure is happening on a work, school, campus, or office network, open School or office WiFi blocks VPN on Android. That page is the right starting point before you touch other Android settings.
5. WireGuard works on normal networks but fails on one restrictive network
This is where protocol strategy matters. WireGuard is often the best default on Android, but it is not the best answer for every filtered or restrictive network. In those cases, you need a clear fallback plan instead of assuming the app itself is broken.
First understand what WireGuard means on Android and what VLESS means on Android. Then open Best VPN Protocol for Android in 2026, WireGuard vs XRay (VLESS/Reality) on Android, or the more focused XRay/VLESS restrictive-network troubleshooting guide.
6. The VPN drops when Android switches from WiFi to mobile data
Some Android VPN problems are not tied to one network at all. They appear during the handoff between networks, especially when the device moves from unstable WiFi to mobile data or back again.
In that case, open VPN disconnects on Android network switches. If the behavior is vendor-specific and the device is Xiaomi, compare it with Xiaomi MIUI or HyperOS VPN reconnect loops.
7. Only one app fails under VPN
When one banking app, smart-home app, streaming app, or sign-in flow fails but everything else works, the problem is often app routing rather than the VPN tunnel as a whole.
That is the point where split tunneling on Android becomes more useful than random protocol changes. If you need the full operational guide, continue with the split tunneling Android guide.
8. The issue disappears when Private DNS is disabled
Private DNS can conflict with the VPN on Android because both layers are trying to influence name resolution or traffic flow. The visible symptom may look like “connected but broken”, “works on mobile but not WiFi”, or “only some domains fail”.
If that pattern sounds familiar, go directly to Private DNS conflicts with Android VPNs. This is one of the highest-value checks because it is fast and often decisive.
9. Always-On VPN or kill switch leaves the phone stuck offline
Android’s strict enforcement options are useful, but they can also create confusion when a network change, login page, or protocol failure happens underneath them. The result is that the phone looks “dead” until the VPN recovers.
Open Always-On VPN and Kill Switch on Android first. If the breakage only starts after combining those settings with app routing rules, compare it with split tunneling conflicts with kill switch.
10. Battery drain or aggressive background behavior makes VPN unstable
Sometimes the tunnel technically works, but Android or the vendor battery layer keeps suspending, restricting, or repeatedly waking the app. That can look like battery drain, random reconnects, or instability that appears only after some idle time.
Use VPN battery drain on Android for that pattern. It helps separate legitimate always-on overhead from broken battery management or vendor interference.
11. Xiaomi, MIUI, or HyperOS keeps breaking the VPN
Vendor-specific Android behavior deserves its own diagnosis. Xiaomi devices in particular can override expected VPN behavior through battery restrictions, background limits, or reconnect rules that look like an app bug at first.
If the device is Xiaomi, open Xiaomi VPN keeps disconnecting on MIUI or HyperOS. That page is usually more useful than generic Android advice.
12. You need a clean baseline before deeper troubleshooting
Not every failure needs a narrow fix page first. Sometimes the real issue is that the baseline setup was never validated cleanly, the protocol choice is inconsistent, or too many settings were changed at once.
In that case, step back and use how to set up a VPN on Android, best VPN settings for Android, and free vs paid VPN on Android to rebuild the decision path from the top.
What this hub is for, and what it is not
This page is meant to shorten diagnosis, not replace every detailed guide on the site. Its job is to help you classify the failure correctly:
- WiFi problem
- captive portal problem
- DNS problem
- restrictive-network problem
- network-switch problem
- app-routing problem
- vendor-specific Android problem
Once you know which class of problem you have, the fix path becomes much shorter. That is why the best next step is usually to open one deeper guide, not five.
Recommended troubleshooting order
If you are not sure where to start, this order is usually the fastest:
- Confirm the internet works without the VPN.
- Check whether the issue is WiFi-specific or also appears on mobile data.
- If on travel or shared WiFi, finish the captive portal first.
- Disable Private DNS once as a diagnostic step.
- If the network seems restrictive, switch from WireGuard to the XRay/VLESS path.
- If only one app breaks, use split tunneling instead of rebuilding the whole VPN.
- If the device is Xiaomi or the battery layer is suspicious, check vendor-specific or battery-specific guidance.
Short summary
Android VPN troubleshooting gets easier when you stop treating every failure as the same failure. Most problems fall into a stable set of patterns, and each pattern already has a better dedicated guide on this site.
Use this page as the central hub when you need to route by symptom, then move into the deeper guide that matches the exact failure. That is usually faster, cleaner, and more reliable than changing settings at random.