Confirm two prerequisites first: the system has been allowed to add a VPN configuration, and the configuration contains at least one node of your own. If either is missing, many rows below will appear together.
| Symptom | Check first | What to do |
|---|---|---|
| The switch will not stay on, or it flips back at once | Whether you tapped Don’t Allow; whether a VPN configuration is still in system Settings | Connect again to grant Allow. If the configuration was deleted, trigger add again. |
| VPN is in the status bar, and no pages load | Whether the current mode is Direct; whether every node times out | Switch to rule mode, or briefly to global for a comparison; try a node that returns a latency reading. |
| Only some sites fail | Whether rules marked that domain Direct or reject | Compare with global. If global works and rule mode does not, it is a rule problem. |
| Subscription update failed | Whether the URL is complete or expired; whether the current network can reach that URL | Copy the link again; switch Wi-Fi / cellular; if it still fails, ask the subscription provider. |
| The update succeeded but the list is empty | Whether the subscription itself is empty; whether the wrong format was imported | Ask the provider to confirm the subscription is still valid. Do not send the subscription contents to anyone else. |
| Every latency test times out | The local network; whether nodes failed as a group; whether the system clock is wrong | First make sure ordinary pages load with the proxy off. In Settings, turn on Set Automatically for date and time. |
| One app will not use the proxy | The per-app list; whether that app was fully quit | After you change the list, force-quit and reopen that app. Do not reinstall Shadowrocket first. |
| Battery drains fast and the device gets hot | Whether Global has been on for a long time; whether nodes keep reconnecting; whether automatic tests run too often | Disconnect; switch to a stable node; lower the test frequency. |
| It fails when another VPN is on at the same time | Whether another VPN is enabled in the system at the same time | Turn the other VPN off first. iOS usually lets only one take effect at a time. |
| It stopped working after an iOS update | Whether the VPN configuration is still there; whether the app needs an update | Update from the App Store first, then grant VPN permission again. If it still fails, consider importing a backup and reinstalling. |
| The list is empty after you switch devices | The configuration is still on the old device | Rebuild from a backup or the subscription URL. You do not need to buy the software again. |
Isolate one change first
Change many things at once and you will not know which step fixed it. Use this order, and change only one thing at a time:
- Turn other VPNs off. Leave only Shadowrocket.
- Confirm the VPN configuration is still in system Settings. If it is gone, flip the switch again to grant permission. See First launch and VPN setup.
- Switch to a node that returns a latency reading. If every node times out, first make sure ordinary pages load with the proxy off.
- Change the mode from Direct to Rule. If that still fails, switch to Global briefly to see whether it is a rule problem. See Proxy mode and rules.
- If none of the above works, consider exporting a backup and reinstalling. You must back up before you reinstall.
What not to do first
- Do not delete the app first. Reinstalling without a backup drops nodes and local rules together.
- Do not download an IPA or a so-called repair package to debug.
- Do not turn on HTTPS decryption or install an extra certificate if you do not understand them. Daily connections do not need those.
Purchase, account region, and Family Sharing are in the FAQ. What the app is is in About. Capabilities are in Features.