Official Manual · Troubleshooting

Shadowrocket FAQ
Purchases, Imports & Connection Troubleshooting

Not sure where to look? Choose a category based on where you are in the setup process, then open the relevant answer. Change one thing at a time while troubleshooting, and keep the original settings and error messages so you can identify the cause.

These instructions assume you already have your own subscription or server details. Check the App Store page for system requirements, purchase availability, and payment amounts.

Q.01—04 / App Store

Purchase verification

What should you check before buying? Verify the product page and your App Store account, then confirm the price and purchase status.

How can I verify that the App Store listing is the official Shadowrocket app?

Check the developer, official app icon, and app ID. The developer is Shadow Launch Technology Limited, and the app ID is 932747118; the product page URL should end with id932747118. The icon should match the official one shown in this site's header. Don't rely on the app name or search ranking alone. On the product page, also check compatibility and purchase details. System requirements are as listed on the App Store page. To buy the app, continue from this site's App Store verification page; all purchases are made through the App Store.

Does the one-time purchase include a connection service? Where can I check the price?

No. A one-time purchase of the app is not a subscription to a connection service. It gives you the right to use the Shadowrocket client; you'll still need your own existing subscription or server details to connect. The US App Store price is $2.99 as a one-time purchase. The amount and currency charged depend on what the App Store shows on the product page and at checkout. This site does not provide, sell, or recommend servers or subscriptions. After purchasing, prepare valid details for a service you already use and import them using the guide. Installing and opening the app does not automatically provide server details.

Do I need to buy Shadowrocket again after changing devices or reinstalling it?

First, check your App Store purchases using the account you originally used. Don't pay again just because you see a price button. Make sure the account currently used for Media & Purchases is the original purchase account, then look for Shadowrocket in the App Store or your purchase history. Menu names may vary; follow what your device currently shows. If prompted to buy again, verify the account, storefront, and purchase history before proceeding. Restoring the app and restoring local configuration are separate things. After reinstalling, check whether your servers, Config, and rules are still there, and reimport any valid details you saved. Don't assume all app data will be restored along with your purchase.

See App Store purchase verification and buying details →

Q.05—08 / First use

Installation & first launch

What should I do after installation? Check device compatibility, connection details, and system permissions, then review automatic connection settings.

Can I install Shadowrocket on iPad, and do I need to buy it separately?

Check compatibility on the same App Store product page on your iPad. Shadowrocket is primarily for iPhone and iPad; system requirements and purchase availability across devices are as listed on the App Store page. If you've already purchased it, use the original purchase account and check whether the product page shows a download option, or open it from your purchases. On iPad, the layout may vary with the screen size and app interface, but you can still check items such as Add Server, Config, and Global Routing. A purchase that covers multiple devices does not mean your existing servers and configuration sync automatically. Check the actual contents when setting up the app.

The connection switch didn't work the first time. What is VPN configuration permission?

VPN configuration permission lets the system allow Shadowrocket to create a network tunnel; granting permission does not mean the server is ready to use. Select a valid server first, then turn on the connection switch. When a system prompt appears, confirm it comes from Shadowrocket and follow the instructions to allow and verify the configuration. If you canceled before, try again from the app. If it still won't connect, check the VPN configuration status in Settings and whether device management policies restrict it. If another VPN connection is active, disconnect it before testing again. Don't repeatedly delete all configurations. Note the exact prompt so you can distinguish a system permission issue from a server connection failure.

The interface is in English. Where should I start?

You can follow the English interface labels without changing the language. Home shows your servers and connection controls; Add Server lets you add connection details; Config manages configurations; and Settings contains app preferences. For a first setup, go to Add Server → choose a type → enter details for a service you already use → save, then check Global Routing and the connection switch. This guide keeps interface labels in English so they match the buttons in the app. Their locations may vary by device and app interface; follow the labels shown in your app rather than guessing based on icon positions.

Shadowrocket is using a lot of battery in the background. What should I do with On Demand?

Compare battery records over similar periods of use, under similar network conditions and data usage. A single percentage reading isn't enough to diagnose a problem. A continuously active network tunnel, heavy data transfer, and frequent reconnections can all affect battery use. Check the On Demand conditions in Settings to see whether it connects automatically on networks where you don't need it. For troubleshooting, temporarily turn off On Demand, connect manually, and observe. Restore automatic connection settings when needed, based on the networks you actually use. Also check whether the system is frequently switching between Wi-Fi and cellular, and whether the server is stable. On Demand triggers connections; it does not guarantee a fixed amount of battery savings.

Follow the full guide to make your first connection →

Q.09—12 / Subscribe

Subscriptions & server imports

Where should you start when an import fails? First distinguish a failed request, a content parsing error, and a server connection failure. They are different problems.

An existing subscription won't import. How can I tell whether it's the address or the network?

In Add Server, choose Subscribe. Check that you pasted the full subscription URL you already have, save it, and try updating. Make sure you haven't missed the beginning or end, added spaces or line breaks, or had a chat app truncate URL parameters. If the request fails, first confirm your internet connection is working. If the returned content can't be parsed, ask the service provider you already use whether the URL returns subscription content Shadowrocket can read. A web account login is not a substitute for a subscription URL. Note the error message for troubleshooting, but don't share the full URL if it contains access credentials, and don't keep creating duplicate entries after a failure.

How do I update an existing subscription, and why hasn't the list changed?

Find the subscription entry in Home and use its update action. First confirm that the update has finished; the exact control may vary in the current app interface. A successful update means the subscription content was retrieved and processed, not that the source content necessarily changed. If the list is unchanged, check that you updated the right entry, that the URL is still valid, and that the service you already use has actually changed its content. If the update fails, keep the original entry, note the error, and check your network before doing anything else. After updating, make sure your currently selected server is still present; don't assume the old selection is available in the updated list.

No servers appear after importing, or a server name appears but the connection fails. What should I do?

Check these cases separately. If no servers appear, check whether the subscription request succeeded and whether the response contained recognizable connection entries. If a name appears but the connection fails, verify the address, port, authentication details, TLS, and transport settings. A saved entry doesn't guarantee that its settings are correct or that the server is reachable. Run Connectivity Test on one entry, then try an actual request; avoid changing the entire server list at once. If the status of a service you already use has changed, ask its provider to confirm that the details are still valid. Importing a subscription saves connection details; it can't fix server-side authentication or availability issues.

When adding a server manually, which fields must match the original details?

In Add Server, choose the type that matches the service you already use, then enter its address, port, and required authentication fields. Shadowsocks, VMess, VLESS, and Trojan use different fields; don't copy settings from one type to another. If your service details include TLS, a transport method, a path, or a server name, check each one. An address and port alone may not be enough. Before saving, check capitalization, spaces, and completeness. After saving, test one entry at a time. Protocol support doesn't mean every combination of settings will work. If you're unsure about a field, check the service details you already have rather than guessing.

Check protocol and configuration terms in the glossary →

Q.13—16 / Diagnostics

Rules & troubleshooting

Connected, but it still doesn't work? Check the network, DNS resolution, and routing policy separately, then compare using the same destination.

Which Global Routing mode should I use: Config, Proxy, or Direct?

Use Config when you want rules to select the policy. Use Proxy to test requests with the selected proxy policy, and Direct to check how a direct connection performs. Config depends on the active configuration and its rules; selecting a server does not replace rule selection. In everyday use, choose a mode based on what you're trying to do. For troubleshooting, keep the server and test target the same and switch only the mode. If Proxy works but Config doesn't, check which rules match and which policies they reference. When testing is done, restore the mode you need; don't leave temporary troubleshooting changes in place.

The switch says Connected, but webpages won't load. What should I check, and in what order?

Check the basic network, server, Global Routing, DNS, and rules—in that order. Disconnect first and confirm your current Wi-Fi or cellular connection can reach your usual destinations. Then connect to the same server, run Connectivity Test, and try an actual request. Next, switch temporarily between Proxy and Config for comparison. If only Config fails, check the active configuration's rule order and policy references. If both fail, review the server details and DNS. Change one thing at a time and record the results; don't replace the server, configuration, and DNS all at once. A Connected status doesn't guarantee that every destination can be resolved and reached.

If Connectivity Test shows normal latency, does that guarantee internet access?

No. Connectivity Test reflects the selected test method and target under the network conditions at that moment. It doesn't represent every website, protocol, or sustained transfer. Make sure the test uses the server you want to check, then open the destination you actually need and see whether it resolves, connects, and loads content. If the test succeeds but the real request fails, check Global Routing, DNS, and rule matches. If only one destination fails, focus on its DNS resolution or connection. When comparing latency, keep the network, test method, and target consistent. Don't delete or replace a server based on a single result.

Should I change DNS or rules first, and where should FINAL go?

First determine whether the problem is DNS resolution or policy selection, then change the relevant setting. If a domain won't resolve, check DNS in the active Config and whether DNS requests can reach their destination. If it resolves but uses the wrong connection policy, check the rules and the recorded match. Rules are generally evaluated from top to bottom: put specific conditions before broader ones, and place FINAL at the end to handle requests that didn't match earlier rules. Keep the policy keywords PROXY, DIRECT, and REJECT unchanged. Save the original configuration before making changes, adjust one item at a time, and retest the same destination before expanding the scope of your changes.

See rule structure, matching order, and policy reference →