Official Guide / Troubleshooting

Shadowrocket Troubleshooting

Find the issue by where it occurs: check your purchase and permissions first, then your existing subscription, and finally routing and connection. Change one setting at a time and keep the original values so you can review the results.

20 questions. Select a question to expand its answer. Purchases and system compatibility are as listed on the App Store page.

Purchase checks

App Store Purchase and Verification

Verify the product and purchase account first, then check store availability, redownloading, and device compatibility.

Can't find Shadowrocket in the App Store? What to check first

Check the spelling, then open the App Store product page from this site's App Store guide to tell a missing search result from regional unavailability. In Settings, tap your name, then open the Media & Purchases account page and check Country/Region; app availability depends on your current store region. If you need to change regions, use the official process on that page and review the requirements for your balance, subscriptions, and payment method first. Don't keep changing regions just because the app doesn't appear in search. Use the product page's messages to decide what to do next.

How can I confirm an App Store listing is the genuine Shadowrocket app?

Check three details on the product page: the app name is Shadowrocket, the developer is Shadow Launch Technology Limited, and the product URL contains id932747118. Then compare the listing with the official icon shown in this site's header. The app ID is 932747118; don't rely on the name or search ranking alone. Before buying, expand the developer and compatibility details to confirm the app suits your device. Prices, system requirements, and purchase terms are as listed on the App Store page. This site's App Store guide explains how to verify each detail.

Do I need to buy Shadowrocket again after replacing or resetting my device?

First, make sure you're using the same account that made the App Store purchase; your system account and the account used for Media & Purchases may differ. Find Shadowrocket in the App Store account's purchased apps and download it again. The list's name may vary by system version. If a price still appears, check your purchase history, current account, and store region before paying again. Restoring the app purchase does not restore servers or Config contents. Before switching devices, keep your existing subscription details and any necessary configuration separately; downloading the app is not the same as restoring its data.

Can I install Shadowrocket on iPad? How do I check other Apple devices?

Shadowrocket is available for iPhone and iPad. On iPad, sign in to the App Store with the account used for the original purchase, check your purchased apps and the product page, then download the version available for your device. System requirements are as listed on the App Store page. The layout may differ from iPhone in landscape mode; use interface labels such as Home, Config, and Settings to find the right controls. Check the same product page for compatibility with Mac, Apple TV, and Apple Vision, and whether the same purchase applies. Check subscriptions and configurations separately on each device rather than assuming they sync automatically.

Does the one-time purchase include a connection service? How do I check Family Sharing?

A one-time app purchase is not a connection plan. Payment covers use of the Shadowrocket app; importing and connecting require your own existing subscription or server details. This site provides the official guide, not a connection service. The US store price is about $2.99; other storefronts show local currency, and the actual price is listed on the App Store page. Check the product page and each family member's purchase-sharing settings to see whether Family Sharing applies. Sharing an app purchase does not share personal subscriptions, configuration files, or server credentials.

Permissions and connections

First launch and VPN permissions

Understand the difference between system authorization, the connection switch, and On Demand so you can troubleshoot each separately.

Why does Shadowrocket ask to add a VPN configuration when I connect for the first time?

This is a system permission prompt shown when creating a VPN configuration. It allows Shadowrocket to handle the device's network requests according to your settings. Make sure the prompt corresponds to the connection you just started, then allow it through the system flow and complete device authentication. Granting permission does not create server details or replace importing an existing subscription. Once approved, return to Home, check the selected entry and Global Routing, then turn on the connection. If you previously denied the prompt, start the connection again; if needed, check the system VPN settings for an existing configuration.

What if the connection switch won't stay on or turns off immediately?

First distinguish a switch that won't stay on from requests that fail after connecting. For the former, check that VPN permission is granted, a valid server is selected, and device management restrictions aren't in effect. Stop any other active VPN connection and try again. If the system configuration appears to be the problem, close Shadowrocket, go to Settings > General > VPN & Device Management, and delete only a VPN configuration clearly belonging to Shadowrocket. Then reopen the app and grant permission again. Don't delete unknown or managed configurations. If your device is managed by an organization, check whether its policy allows VPN connections.

Are the system VPN configuration and a Config file the same thing?

No. The system VPN configuration records the system authorization and entry point needed for the app to establish a network connection. Shadowrocket's Config file stores app settings such as rules and DNS. Removing the system VPN configuration usually means granting permission again, but it won't fix an incorrect subscription URL or server settings. Switching Config files doesn't restore system permission either. Before troubleshooting, note the current configuration name and keep any necessary backup. Identify whether you need to change system permissions or app rules, rather than rebuilding both and losing track of the cause.

The interface is in English. Where do I find the controls mentioned in the guide?

This guide keeps interface labels in English so you can find them directly: Home is where you view and select servers, Add Server adds an entry, Config manages configuration files, Settings opens app settings, and Global Routing selects the overall routing mode. The explanations describe what each control does without renaming it. To change the display language, check for a Shadowrocket language option in system Settings. Availability and language choices depend on what your system and app currently show. If no language option is available, follow the English interface labels in this guide.

Where should I look if the connection turns back on after I switch it off?

In Settings, check whether On Demand is enabled and whether the current network meets its connection conditions. To test manual control, temporarily turn off On Demand, disconnect, and see whether the connection starts again. Change one setting at a time so you can identify the cause. Also check the active configuration name in system VPN settings and confirm that Shadowrocket is reconnecting. On Demand controls when a connection starts; it doesn't fill in server details or fix problems with the connection service. Check routing rules and connection triggers separately.

Importing existing details

Subscription and server imports

The steps below assume you already have your own subscription or server details. Redact credentials in URLs when troubleshooting.

What order should I follow when an existing subscription won't import?

Make sure you copied the complete subscription URL provided by your own service provider, not an account sign-in or information page. Check for spaces, line breaks, or punctuation accidentally added at either end. Confirm the subscription is still valid, the current network can reach the URL, and you've selected the Subscribe type under Add Server. For certificate, timeout, or parsing errors, check the device time, network access, and the format of the returned content respectively. Don't post a complete subscription URL publicly; it may contain access credentials. If you need help, describe the error and redact sensitive information.

What's the difference between Subscribe, a single server, and Config?

Subscribe is generally used to retrieve and update a group of server entries. A single server stores the address, port, and protocol settings needed for one connection. A Config file manages settings such as rules and DNS. Identify what kind of information you have before choosing the matching option; not every URL belongs in Subscribe. After importing, check the server list in Home and the active configuration in Config. A subscription update can change the list without selecting the server or rules you want, so check your current selection afterward.

How do I update a subscription, and why are there fewer entries afterward?

In Home, find the existing Subscribe entry, use its update action, and review the result. The menu location may vary with the current app interface. Before updating, note your current selection and any important details. Afterward, check the entry name, changes in the number of servers, and whether the connections you need are still available. The list reflects the content returned by the subscription; provider changes, subscription status, or an error in the response can all reduce it. Don't repeatedly import the same URL instead of updating it. First confirm that the update retrieved content, then ask your own provider to verify the subscription and its response.

Do I have to enter every setting myself when adding a server such as Trojan?

Enter the actual settings for your existing server; don't guess based on the protocol name. In Add Server, choose the correct type, then enter the address, port, password or key, and any server-required fields such as TLS or SNI. Trojan, Shadowsocks, and WireGuard use different settings; don't interchange them. If you already have a recognizable link or QR code, use the matching import option, then verify the key fields. For certificate verification errors, check the server name, device time, and certificate settings. Disabling verification should not be a routine fix.

Scan QR Code can't read the code. How can I tell whether the problem is the image or its contents?

First confirm the QR code comes from your own server details and contains connection information supported by the app, not an ordinary web address. When using Scan QR Code, check camera permission, image clarity, and that all four edges of the code are visible. If scanning from an image, use the original and avoid repeated compression or cropping. If the code is recognized but won't import, check its encoded content and protocol type rather than changing the camera distance. After a successful import, verify the address and type in Home. QR codes may contain passwords or other credentials, so don't share them publicly as ordinary screenshots.

Routing and diagnostics

Routing rules and troubleshooting

Use actual requests and match records to check the network, server, rules, and DNS separately.

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

Config uses the rules in the active configuration to match requests. Proxy sends requests handled by that routing mode through the selected proxy. Direct connects without using a proxy. For everyday rule-based routing, select a valid Config first, then set Global Routing to Config. To troubleshoot a rule, briefly switch to Proxy or Direct for comparison, note the original setting, and restore it afterward. Changing the mode only affects routing; it won't fix an incorrect password, an expired subscription, or an unreachable server. The switch state alone doesn't show the actual network route.

It says connected, but I can't access the internet. What should I check first?

Disconnect and confirm that your Wi-Fi or cellular connection works on its own. Reconnect, then check the selected server in Home, Global Routing, and the active Config. Try another valid server you already have to distinguish a problem with one entry from a broader configuration issue. If only some domains fail, use the connection logs to check the matched rules and DNS resolution. If all requests fail, check the server's expiry status, address, port, and authentication settings. Change one thing at a time and retry the same request; changing the subscription, rules, and DNS all at once makes the cause harder to identify.

Why does Connectivity Test return a result when sites still won't load?

Connectivity Test reports how the selected test method and target responded at that moment. It doesn't mean every website, rule, or DNS lookup is working. First confirm that the test used the server you're currently using, then check whether failed requests followed the same route. If the test returns a result but access still fails, check Global Routing, rule order in Config, DNS resolution, and server settings. Test results are useful for an initial comparison in the same environment, but one reading isn't enough to judge service quality. Confirm using actual requests and connection logs.

Why isn't my DOMAIN-SUFFIX rule taking effect?

Confirm that Global Routing is set to Config and that the active configuration contains the rule. Then check the rule's position and target policy. Rules are generally matched in order, so an earlier match may prevent a later DOMAIN-SUFFIX rule from being considered. Also confirm that the requested domain matches the suffix you entered. DOMAIN-SUFFIX,example.com,PROXY is a syntax example; example.com is for demonstration only. Save your changes and reload the configuration if the interface requires it. Test with a new request and check which rule matched; don't mistake behavior from an existing connection for the result of the new rule.

How can I investigate increased battery use during a continuous connection?

Check battery usage for the same period in system settings, then compare it with traffic changes in Data to see whether data is being transferred continuously. Network processing while a VPN is active can affect battery life. Video downloads, frequent reconnects, weak signal, and continuous diagnostics can also increase consumption; an app's share of the battery list alone doesn't establish the cause. Compare stable connections with frequent network switching under similar conditions. Turn off tests or detailed logging you no longer need, and check whether On Demand is triggering repeated connections. Note the original settings before making changes so you can restore and compare them.

Continue with the full steps

If you need to start from the beginning, go to the relevant section. Keep error messages and current settings while troubleshooting instead of clearing all data.

Download Shadowrocket