Official Manual · Troubleshooting
Shadowrocket Troubleshooting
Troubleshoot by symptom: check purchase and system status first, then existing connection details, and finally the rules. Change one thing at a time and keep the error message and original configuration.
For initial setup, start with the quick start guide. To check the App Store listing, see the download guide. This page explains how to use subscription or server details you already have.
20 questions · Select a question to expand the answer · Expand multiple answers for comparison
01 / App Store
Purchase & Verification
Start by checking the product page, purchase account, and device compatibility. Buying the app and getting connection details are separate things.
Can’t find Shadowrocket in the App Store? What to check first
First, make sure you’re searching for Shadowrocket. Then use the download guide to open the correct App Store product page and determine whether the issue is with search results or availability in your current storefront. If the product page says the app is unavailable, check the country or region of the Apple Account used for purchases instead of changing your device language. On your device, go to Settings, open your Apple Account, then select Media & Purchases and check Country/Region. If you need to change it, follow Apple’s steps for handling your balance, existing subscriptions, and payment details. Availability is determined by the current App Store product page.
How can I verify that an App Store listing is the genuine Shadowrocket app?
Check three details on the product page: the developer, Shadow Launch Technology Limited; the official icon, matching the one in this site’s header; and app ID 932747118 in the link. Don’t rely on the app name or its position in search results: similar names and icons are no substitute for matching the developer and app ID. Once all three match, check the price and device compatibility shown in your storefront. Shadowrocket is available only through the App Store, where purchases and app updates are handled.
Do I need to buy Shadowrocket again on a new iPhone or after reinstalling it?
In most cases, you can get the app again from your App Store purchase history using the Apple Account that originally bought it. First check which account is signed in under Media & Purchases, then look for Shadowrocket in your purchase history. The account used for purchases may differ from the one used for iCloud on your device. If you see a price instead of an option to get the app again, check your purchase history, storefront, and order status before paying again. Restoring the app and restoring its connection setup are separate tasks: restore your existing subscriptions, Config, and custom rules from your own backup.
Does buying the app include a working connection?
A one-time app purchase is not a service plan. Buying Shadowrocket gives you the right to use the app; connecting still requires subscription or server details you already have. Before importing them, check the protocol, address, port, and authentication fields. Paying for the app does not generate these details. This site does not provide, sell, or recommend nodes or subscriptions. Check the App Store product page for the price. If a connection fails, check the app purchase status and the status of your existing service separately.
Can I install Shadowrocket on an iPad? How do I check compatibility with other Apple devices?
Shadowrocket is primarily used on iPhone and iPad. Open the same App Store product page on the device you plan to use and check its compatibility and purchase availability. On iPad, first check your purchase history while signed in to the Apple Account used for the original purchase, then follow the App Store prompts. Check the product page’s compatibility section for Mac, Apple TV, and Apple Vision as well. Refer to the App Store page for system requirements; compatibility on one device doesn’t guarantee compatibility on another. Layouts and controls may also vary by device.
02 / Home & Settings
Installation & First Launch
System permissions, the app interface, and connectivity tests each indicate different things; none can stand in for the others.
Why does Shadowrocket ask to add a VPN configuration the first time I connect?
Shadowrocket uses a system network extension to handle traffic according to your configuration, so it asks to add a VPN configuration when you connect for the first time. Make sure the prompt was triggered by opening Shadowrocket, then follow the system instructions to grant permission and authenticate on your device. If you previously canceled the request, return to the app and try connecting again. The VPN status in Settings shows whether the network extension is running; it doesn’t verify your server details, authentication, or rules. After granting permission, select an existing connection and test access to a destination you actually need to reach.
What should I do if the connection switch on Home won’t turn on or immediately turns off?
First, make sure Home has a valid connection entry and that it’s selected. Then check that you completed the VPN configuration permission prompt. In Settings, check the VPN configuration status. If your device is managed by an organization or restricted by parental controls, check the applicable requirements. Also check whether another VPN connection is running, and avoid repeatedly switching between connections. Keep your existing configuration, reopen the app, and try again. If the switch still turns off immediately, note any system messages and logs. Don’t delete all your configurations first; they may contain information needed to diagnose the issue.
The interface is in English. What are Home, Config, Data, and Settings for?
Find the right section by what you need to do, rather than guessing from the labels. Home is where you view and select existing connections; Add Server is for entering connection details. Config is for configuration files and rules, Data shows traffic-related records, and Settings contains app preferences. Config under Global Routing is a connection mode, not the section for managing configuration files. Layouts may vary across devices and app versions, so use the labels shown in your interface. When reporting an issue, note the section name and selected item; this is more useful than describing a button’s position.
Does a successful Connectivity Test mean every website is reachable?
A Connectivity Test result alone can’t tell you whether every request will work. The test covers its own destination and method under the network conditions at that moment. Actual access can also depend on DNS resolution, Global Routing, matching rules, and the destination service’s status. Select a connection, run the test, then try the destination you need to reach. If the results differ, check the request’s policy and logs. A test result doesn’t directly indicate download speed. If a test fails, check whether its destination is reachable before changing all your settings.
How can I keep my existing configuration before updating the app?
App updates are delivered through the App Store. Before updating, make sure you can still access your existing subscription URL and any necessary server details in your own secure records, and back up the Config and custom rules you use. If you use iCloud sync features, confirm your content has synced to this device; an enabled sync switch doesn’t prove that a backup is complete. After updating, check your connection entries, selected configuration, and Global Routing before connecting. Don’t delete the app just to investigate a change in the interface; reinstalling doesn’t automatically restore all local data.
03 / Subscribe & Add Server
Subscription & Connection Import
Starting with connection details you already have, check the address, response, protocol fields, and update results separately.
What should I check, and in what order, if an existing subscription won’t import?
First, make sure you copied the complete subscription URL you already have, not an account management page or instructions page. Check for leading or trailing spaces, line breaks, and missing query parameters. Then confirm that your device’s current network can reach the URL, that your existing service is active, and that its response uses a subscription format Shadowrocket can read. Note the error shown in the app and distinguish between a request failure, authentication failure, and content parsing failure. Change one thing at a time. Subscription URLs may contain credentials, so redact sensitive parts and never share the full link when asking for help.
How do I update a Subscribe group, and what should I check afterward?
Find the existing Subscribe group on Home and use its update action; the exact location depends on your interface. Before updating, make sure your current network can retrieve the subscription. Afterward, check that the group’s entries have refreshed and that your previously selected connection is still there. A subscription update refreshes connection details provided remotely; it doesn’t update the App Store app or necessarily refresh every rule in your current Config. If entries disappear or the group becomes empty, check the message and response before deleting and recreating multiple copies of the group.
If Scan QR Code fails, do I have to enter the details manually?
First, make sure the system allows camera access. Then check that the QR code is complete, clear, and free of glare. It must contain connection details that the app can read; a regular webpage, account sign-in code, or payment QR code can’t be imported as server details. If the code comes from a service you already use, display the original image again and retry rather than scanning a compressed screenshot. If it still can’t be read, use an existing connection link or enter the details under Add Server. After importing, check Type, Address, Port, and authentication fields. A successful scan doesn’t guarantee the connection will work.
Which fields are easiest to get wrong when adding a server manually under Add Server?
First, choose the Type that matches the server details you already have, then enter Address, Port, and the authentication fields required by that protocol. Address is usually just a hostname or address, not a webpage path; Port must match the server. A Shadowsocks encryption method, a VMess or VLESS UUID, and a Trojan Password aren’t interchangeable. If TLS is involved, also check SNI, certificate validation, and transport settings. Before saving, check for leading or trailing spaces in copied values. Don’t turn off certificate validation to conceal a hostname or parameter error.
What’s the difference between a Config file and a Subscribe subscription?
Subscribe usually manages a group of existing connection entries and refreshes them from remote content when updated. Config organizes rules, policies, and related settings. The contents depend on the file, so don’t infer them from the link name alone. After importing a subscription, check which Config is active and whether Global Routing is set to Config. Conversely, importing a rule file doesn’t mean you have all the server details needed to connect. Back up your existing configuration before making changes, and check the sources of your connection details and rules separately. A subscription update doesn’t replace all local settings.
04 / Global Routing
Rules & Routing
Check the underlying network first, then connection details, and finally rule matching. A connected status doesn’t mean every request will succeed.
How do I choose between Config, Proxy, and Direct in Global Routing?
Config uses the rules in your active configuration to determine how requests are handled. Proxy routes requests through the selected proxy connection where possible. Direct connects without a proxy. For rule-based routing, start by checking that Config and its rules are correct. To troubleshoot, you can briefly switch between Proxy and Direct and compare the same destination to help distinguish connection issues from rule issues. Don’t change the server and configuration at the same time. Restore your intended mode afterward, and note that the Proxy mode in the interface and the PROXY rule policy operate at different levels.
It says connected, but I can’t access the internet. What should I check first?
Temporarily disconnect Shadowrocket and check that your device’s regular network can reach a working destination. If the underlying network is having problems, fix the Wi-Fi or cellular connection first. Reconnect, check the selected entry’s status and details, then check Global Routing and the active Config. Test the same destination with Direct and Proxy, then review the logs for DNS resolution errors, connection failures, or authentication messages. Connected means the system network extension is running; it doesn’t guarantee a connection to the remote server. Keep the error details and change one thing at a time so you can identify the cause without changing DNS, rules, and server settings all at once.
How do I fix routing when only one domain is using the wrong policy?
First, confirm Global Routing is set to Config and check which configuration file is active. Rules are evaluated from top to bottom, and evaluation stops at the first match. Put a DOMAIN exception for a specific domain before broader DOMAIN-SUFFIX or DOMAIN-KEYWORD rules. Then check that its policy is the intended PROXY, DIRECT, or REJECT, and review the fallback set by FINAL at the end. Adding a rule at the bottom doesn’t guarantee it will take effect: if an earlier, broader rule matches, later exceptions aren’t evaluated.
How can I tell whether increased battery use is related to my configuration?
In Settings, review the battery records for the same period and distinguish screen use, continuous data transfer, and background activity. Battery use can depend on traffic volume, signal strength, protocol processing, logging, and repeated reconnections; the VPN icon in the status bar alone doesn’t identify the cause. Compare similar usage periods while reducing continuous testing, verbose logging, and unnecessary background tasks one at a time. If the connection drops frequently, check the network and connection details first. Also review the connection triggers in On Demand; repeatedly toggling the switch isn’t a reliable way to assess battery use.
Why does On Demand reconnect after I disconnect manually?
On Demand starts connections when configured conditions are met; it doesn’t determine whether a domain uses PROXY or DIRECT. When it’s enabled, network activity that meets those conditions may start a connection again. After disconnecting manually, check whether On Demand is still enabled and review the related status in your system VPN configuration. For temporary troubleshooting, note the original conditions, then pause the relevant trigger and test again. Restore the intended behavior once you’ve identified the cause. Check for other automation too, so a condition-triggered connection isn’t mistaken for a faulty switch.