A VPN keeps disconnecting for one of a handful of reasons: the phone's battery manager is killing the app in the background, the device is switching between Wi-Fi and mobile data, the connection is idle and something along the path times it out, the network is throttling the protocol, or the server is overloaded.
Each has a distinct symptom and a fix that takes a minute. Work through the list in order; most cases end at step one or two.
battery optimization ▇▇▇▇▇▇▇▇
switching networks ▇▇▇▇▇▇
idle timeout, NAT ▇▇▇▇
network hits protocol ▇▇▇
crowded server ▇▇
└─ check in this order1. Battery optimization is killing the app (Android, some laptops)
The most common cause on Android, especially on Samsung, Xiaomi, Huawei, OnePlus and Oppo phones. The system spots a background app holding a connection open and shuts it down to save power. You'll know it by the symptom: connected while you're using the phone, disconnected when you pick it up after a while.
Fix: Settings → Apps → the VPN app → Battery → Unrestricted (or "Don't optimize"). On Xiaomi also enable Autostart. Then Settings → Network → VPN → gear icon next to the app → Always-on VPN, and Block connections without VPN if you want nothing to leak while it reconnects.
battery optimization ||||||||| network handover ||||||| idle timeout ||||| overloaded server |||| weak Wi-Fi ||| another filter running ||
2. Switching between Wi-Fi and mobile data
Every switch is a brief network change, and your tunnel has to be rebuilt from scratch. You'll see it when you leave the house, get to the office, or walk between Wi-Fi zones. With a good protocol the reconnection takes under a second and you barely notice; with a slow one you see the "connecting" state.
Fix: WireGuard and VLESS come back fast, OpenVPN doesn't. Switch protocol (the rules two machines use to talk) if your app lets you. On iPhone, on-demand rules keep the tunnel up across switches; on Android, Always-on VPN does the same. If a specific Wi-Fi network is the problem, VPN not working on Wi-Fi covers the network-side causes.
3. Idle timeout and NAT
Home routers and mobile carriers keep a table of active connections and quietly drop the ones that go silent. If your tunnel sends nothing for a few minutes, it can vanish from that table, and the next packet has nowhere to go until your client catches on. Symptom: fine while browsing, dead after the phone sat idle, reconnects when you open the app.
Fix: turn on keepalive. In WireGuard configs that's PersistentKeepalive = 25, and most apps either give you a setting for it or just do it for you on mobile. If the app has no such option, Always-on VPN on Android achieves a similar effect by reconnecting immediately.
you stop using the network └─ the carrier closes the session └─ the tunnel dies silently fixed by keepalive: a tiny packet every twenty-five seconds
4. The network throttles or interferes with the protocol
Some networks recognize VPN protocols and snip them every so often instead of blocking them outright. You'll see it as: connects, works for thirty seconds to a few minutes, dies, repeats. And usually only on one network.
Fix: switch to a protocol that looks like normal HTTPS, such as VLESS with Reality, which is what what is VLESS explains. If the app has automatic protocol selection, make sure it's on.
5. Overloaded or unstable server
You'll see drops at any hour, on any network, but only on one server, while other servers in the same country behave. Fix: pick another server, ideally one showing lower load on the server list. If a server repeatedly misbehaves, report it; it's probably known.
6. Weak or crowded Wi-Fi
This one is the VPN taking the blame for what your Wi-Fi is doing. The drops line up with a weak signal, being far from the router, sitting on 2.4 GHz in a crowded building, or a hotel network that rations each device. Fix: move closer, use 5 GHz, or switch to mobile data to confirm; if the drops stop, the Wi-Fi was the cause.
7. Another VPN, filter or antivirus
Two VPN apps, an ad blocker squatting in the VPN slot, or a desktop security suite that inspects traffic will happily fight each other over your connection. The giveaway: the drops started right after you installed something. Fix: disable the other app; on desktop, add the VPN to the security suite's exceptions. On iPhone, only one VPN configuration can be active, and a content filter counts, as explained in what is VPN on iPhone settings.
drops on every network the server drops only at home your Wi-Fi drops only in background the battery drops when you move roaming
8. MTU and IPv6
Packets that are too large for the network get dropped, and a mix of IPv6 outside the tunnel and IPv4 inside it can cause connections to stall and the app to give up. Symptom: connected, some sites load and others hang, then the app reconnects. Fix: lower the MTU to 1280 in the app or configuration; enable IPv6 inside the tunnel or disable it on the interface. The IPv6 leak test shows whether IPv6 is escaping.
the tunnel drops ├─ without one: traffic went out │ and you never noticed └─ with one: the internet stops and you know immediately
If the problem is how long it takes to come up rather than that it drops, how long a VPN takes to connect covers that separately.
Why a kill switch matters here
Every disconnection is a window where your traffic can quietly fall back to the open connection. A kill switch (no tunnel, no internet) blocks everything until the tunnel is back, which turns a flaky connection into an annoyance instead of a leak. So turn it on first, then go fix the drops. In that order.
If the drops follow a pattern, that pattern is the clue. Describe it.
Help me find why my tunnel keeps dropping.
When it drops: (in the background / when the
screen locks / switching Wi-Fi to mobile / at the
same time each day / at random).
How often: (roughly).
Device: (model, system, skin).
App: (name). Protocol: (if you know).
Does it come back by itself: (yes / no).
Say which cause fits my pattern and what to check
first.
If there is no visible pattern, tell me what to
observe so one appears.
[ ] battery restrictions removed [ ] always-on turned on [ ] keepalive set [ ] MTU tried lower [ ] only one tunnel app installed
VPN keeps disconnecting: checklist
- Battery: Unrestricted; Always-on VPN on Android.
- Protocol: WireGuard or VLESS; automatic selection on.
- Keepalive 25 seconds.
- Another server in the same country.
- Rule out Wi-Fi by testing on mobile data.
- Remove conflicting VPNs, filters, firewalls.
- MTU 1280; IPv6 inside the tunnel or off.
- Kill switch on throughout.
404 VPN's apps for Android and macOS run VLESS, and the Android app blocks traffic during reconnects with a kill switch. 404 VPN's WireGuard configs for Istanbul and Marseille come from the dashboard and go into the separate WireGuard app, where blocking traffic when the tunnel drops is set in that app or in the phone's VPN settings. Details on the features page; get started here.