Shadowrocket / Official Manual

Shadowrocket Troubleshooting

Separate purchase issues, system permissions, subscription details, and routing configuration before troubleshooting. Change one setting at a time and note its original value so you can identify where the issue occurs.

App Store

Verify the app and purchase

Store availability depends on your account's storefront; redownloads depend on your original purchase history. Check before you pay.

Can't find Shadowrocket in the App Store? Check this first

First check the country or region of the Apple Account used for App Store purchases—not your device language, location, or current network. Open Settings, tap your name, then check the account and country or region under Media & Purchases. Labels may vary by system version. Shadowrocket is generally unavailable in the mainland China storefront. Use the product page linked from the download guide to check availability. If the page says the app isn't available in your current storefront, changing your search terms repeatedly won't change that.

What should you check before changing your Apple Account country or region?

Follow the official path: Settings → your name → Media & Purchases → View Account → Country/Region. Before making changes, check your account balance, active subscriptions, pending orders, and Family Sharing status. Prepare payment and billing information that meets the requirements of the destination storefront. Some items may need to be resolved or expire before you can change regions. Follow the prompts shown by your device; don't enter inaccurate billing details just to make a purchase. After the change, check the product page and checkout currency.

How can you verify that the App Store listing is the genuine Shadowrocket app?

Check the product name, Shadowrocket; the developer, Shadow Launch Technology Limited; the app ID 932747118 in the product page URL; and the official icon shown on this site. Don't rely on search ranking, nicknames, or similar-looking artwork. Open the product details to verify the developer and compatibility, then confirm the app name and price on the purchase confirmation screen. The download guide brings these checks together. The App Store product page is the only place to get the app, and purchase records are associated with the Apple Account used to buy it.

Do you need to buy Shadowrocket again when you get a new iPhone or reinstall it?

Sign in with the Apple Account you originally used to buy Shadowrocket. In the App Store account page, find your purchased items or app history and download Shadowrocket again. The account signed in to your device may differ from the one used for Media & Purchases, so check the latter carefully. If a price still appears, check your purchase history, hidden purchases, and current storefront before paying again. Reinstalling the app and restoring its configuration are separate tasks. Restore server details, subscriptions, and Config using your existing backup method, and verify each item.

Does the one-time purchase include connection service, and where can you check the price?

Shadowrocket is a paid client. The US storefront reference price is $2.99 as a one-time purchase; the actual price, taxes, eligibility, and local currency depend on the App Store listing and checkout. Buying the client once does not include a service plan. You'll need your own subscription or server details before use; get subscription information from your service provider. Buying the app won't fill in connection settings or confirm that a service is active. Check the subscription term and app purchase record separately.

See how to verify the app →

Home / Settings

Installation and first launch

After installation, import your existing details, select a server, and grant VPN configuration permission in the system.

Can you install Shadowrocket on iPad if you already bought it on iPhone?

Shadowrocket supports iPhone and iPad. Check the App Store listing for system requirements and purchase eligibility. On iPad, sign in to the App Store with the Apple Account used for the purchase, check your purchased items, then review compatibility on the product page. The larger display may change how lists are arranged, but you can still use interface labels such as Home, Add Server, Config, and Global Routing to find your way. After installation, check the server list and active configuration. An app purchase does not automatically transfer subscription details.

What is the VPN configuration permission prompt shown when connecting for the first time?

When you first turn on a connection, the system may ask permission to let Shadowrocket add a VPN configuration. This authorization lets the client create a system network tunnel; it is separate from purchase verification and subscription updates. Confirm the prompt is for Shadowrocket, then follow the system instructions to allow the configuration and authenticate on your device. Never share your device passcode. If you canceled the prompt, return to the app and try connecting again, then check the VPN section in Settings for the configuration status. After granting permission, select a valid server and check the routing mode.

The interface is in English. Where should you start?

Use these interface labels to find key features: Home shows your server list and connection status; Add Server lets you add existing server details; Subscribe is for subscription-based entries; Config manages configuration files; and Global Routing sets the overall routing mode. Available app-language options depend on your device's Settings and what the app currently offers. If there is no language option, use these English labels to navigate. Don't identify a feature by button position alone; layouts can vary by device. Read each field label carefully before changing anything.

What order should you follow when setting up Shadowrocket for the first time?

First, get a subscription from your service provider or gather the complete details for an existing server. Use Add Server to import or enter the information, then return to Home and confirm it appears in the list. Select a server and check Global Routing. If you need rule-based routing, confirm the active Config as well. Finally, turn on the connection, complete system authorization, and test access. Don't toggle the connection repeatedly before importing your details or change several advanced settings at once; that makes it harder to find where a problem occurs.

How do you check device compatibility and update requirements before installing?

Open Shadowrocket's App Store product page and check the compatibility section. System requirements are as listed on the App Store page. Updates are also handled through the App Store. Make sure your device has enough free space, can access the store, and is signed in with the right purchase account. Differences between a tutorial and your device's interface don't necessarily mean something went wrong; layouts can change by device and app version. Back up any configuration you need before updating. Afterwards, check the active Config, selected server, and connection status so you don't mistake a settings change for an expired subscription.

Follow the full guide to make your first connection →

Add Server / Subscribe

Subscriptions and server imports

These steps assume you already have a subscription or server details. Get subscriptions from your service provider, and protect any authentication information they contain while troubleshooting.

Subscribe import failed: how can you tell whether the link or network is the problem?

Make sure you're using the complete subscription URL from your service provider, not an account sign-in page, help page, or truncated share text. Check for spaces, line breaks, or punctuation accidentally included when copying. Then verify your device's date and time and make sure the current network can reach the subscription URL. If you see an authentication or invalid-content error, ask your provider to confirm the URL's validity period, access permissions, and output format. Don't post a complete URL containing authentication details in a public forum. The error message is usually enough for troubleshooting; keep the subscription contents private.

You have details for one server. What should you enter in Add Server?

In Add Server, first select the Type that matches the server, then enter the address, port, and authentication details required by that protocol. Depending on the protocol, you may also need TLS, a transport method, Server Name, or other parameters. An address and port alone may not be enough. Use the server details you already have; don't guess passwords, encryption methods, or toggle settings based on the protocol name. Save the entry, return to Home to confirm it's listed, then test the connection. If it fails, check each field against your details instead of repeatedly switching protocol types.

How do you update a subscription, and why might the selected server change afterward?

Find the relevant subscription group on Home and use its update action; the exact control depends on the current interface. Before updating, note which entry you're using. Afterwards, check that the update completed, whether the group contents changed, and whether the original entry was renamed or removed. An update retrieves the content currently provided by your service provider, so older entries may not always remain. If the selected server changes, choose a valid entry again and test it. Don't import the same URL repeatedly just to refresh it; that can leave multiple similar groups.

The subscription imported, but the list is empty or has only a few entries. What should you do?

Expand the relevant group and check whether search, filters, or hidden-item settings are limiting what's shown. Confirm that you updated the intended subscription, not a different group. If the group is truly empty, review the update result and ask your provider to confirm the subscription term and the content currently returned. A successful import means the import process completed; it doesn't mean every entry is valid or that the provider will always return the same number of entries. Before deleting a group, preserve any details you may need to restore it. Avoid repeated imports as a way to troubleshoot a display issue.

What's the difference between Subscribe and Config? Does updating a subscription update rules too?

Subscribe is generally used to retrieve and update server entries, while Config manages rules and related settings. These are separate update tasks. After updating a server subscription, check the active Config and its source separately; don't assume the rules were updated too. Imported content depends on its format. Back up Config before modifying or replacing it. After enabling it, check that Global Routing is set to Config and review key rules and FINAL. Seeing a file in the list doesn't mean it's active.

Compare subscription and configuration terms →

Global Routing / Config / Data

Rules, routing, and troubleshooting

Assess connection status, actual access, and rule handling separately. An enabled connection doesn't mean every destination is reachable.

How should you choose Config, Proxy, or Direct in Global Routing?

Global Routing has three modes: Config, Proxy, and Direct. Config uses the rules in the active configuration to determine how connections are handled, which is useful for rule-based routing. Proxy sends connections handled by the client through the selected proxy. Direct connects directly. Choose based on your needs; Proxy isn't a fix for every connection issue. For troubleshooting, note the original setting before switching temporarily for comparison. Restore it after testing, and distinguish the interface modes Proxy and Direct from the rule policy keywords PROXY and DIRECT.

The connection switch won't turn on, or turns off right away. What should you check first?

First, confirm that you've selected a valid server on Home. Check whether the system is still waiting for VPN configuration permission or device authentication. Then check Settings for another active VPN configuration, device management restrictions, or organizational policies. Follow your organization's requirements on managed devices. Note the exact error shown by the client, then try turning the connection off and reopening the app. Don't start by deleting all system configurations or resetting network settings. Consider broader system troubleshooting only after understanding the impact and saving any information you need.

The app says connected, but webpages won't load. How do you troubleshoot this step by step?

A connected status means the tunnel is established; it doesn't confirm that the target site, server, or DNS is working. First disconnect and check that your basic network can open ordinary webpages. Then reconnect and verify the selected server and subscription. Note the current Global Routing mode and Config, and test different destinations to see whether all or only some fail. If needed, compare Wi-Fi and cellular results. Change one variable at a time. If the issue occurs only with Config, check the matching rules and DNS before deleting the whole configuration.

Rules don't seem to be taking effect. How do you check their order and FINAL?

First confirm that Global Routing is set to Config and that the intended configuration file is enabled. Rules are usually matched from top to bottom, and the first match determines the policy. A broad rule near the top can therefore take precedence over a more specific one below. Check whether conditions such as DOMAIN, DOMAIN-SUFFIX, and IP-CIDR match the actual destination, and verify that policy names and references are valid. Put FINAL at the end to handle connections that didn't match earlier rules. Test with a new connection after making changes; existing connections may keep their previous handling. Don't conclude that the entire ruleset is broken based on one visit.

Shadowrocket is using more battery. Which settings should you check?

Compare battery use over similar periods in the system's battery settings, taking screen time, signal strength, data transferred, and network switching into account. Frequent reconnects, sustained high data use, repeated testing, and extended detailed logging can all add processing load. Check whether On Demand is appropriate and avoid unnecessary repeated tests. Turn off detailed logs enabled temporarily for diagnosis when you're done. The protocol name alone doesn't determine battery use; compare under the same network conditions and workload. A persistent VPN status by itself doesn't mean the client is malfunctioning.

Do Connectivity Test and Data prove that the connection is working perfectly?

Connectivity Test helps assess reachability under specific test conditions; it doesn't confirm that every website, app, and transport will work. Traffic figures in Data also depend on the reporting period and reset status, and don't replace your provider's usage or validity records. If a test passes but a destination fails, check its domain, matching rules, and DNS. If a test fails but some destinations work, check the test destination itself. When contacting your provider, describe the network type, affected destination, and error. Redact subscription URLs and authentication fields.

See the proxy mode guide →
Download Shadowrocket