Official guide troubleshooting

Shadowrocket FAQ
and Troubleshooting

Find the step that matches your issue: check purchase and setup first, then review your existing subscriptions and server details, and finally compare connection status, Global Routing, and rules. Select a question to expand its steps; you can open several to compare them.

App Store · Purchase history

Purchase verification

Check the App Store link, account region, and purchase history separately. Refer to the current product page for price and compatibility.

How can I verify that the app on the App Store is the genuine Shadowrocket?

Check three details: the developer is Shadow Launch Technology Limited, the app icon matches the official icon shown on this site, and the product page URL contains id932747118. Once all three match, review the price and compatibility. A similar icon or name alone isn't enough to verify the app. Shadowrocket is available only through the App Store; use the same product page to check release history and system requirements. Confirm the app details in the App Store before purchasing.

What does the one-time purchase include? Does it include a connection service?

Shadowrocket is a paid client. The US storefront lists it for a one-time purchase of $2.99; the current price is shown on the App Store product page, and other storefronts display local currency. Buying the client once is not the same as buying a service plan: the purchase grants use of the client, while connecting requires a subscription or server details you already have. This site does not provide, sell, or recommend servers or subscriptions. When checking a charge, review your App Store purchase history separately from the status of any service you already use.

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

First, check that the Apple Account used for Media & Purchases is the account that made the original purchase, then look for Shadowrocket in your purchased items. If your purchase and device meet the requirements, follow the App Store prompts to download it again. Universal purchase, Family Sharing, and system requirements are as listed on the App Store page. If you're still shown a price, check your purchase history and account before paying again. Restoring the app does not restore all local settings, so save any configuration data you need before reinstalling.

How do I check if my Apple Account region differs from my App Store region?

Purchases and searches use the storefront region associated with Media & Purchases, not just your device's language and region settings. In system Settings, open your Apple Account, then Media & Purchases and View Account to check Country/Region. Menu names may vary by system language. If you need to change your region, follow Apple's process and first address any conditions shown, such as account balance, active subscriptions, or payment methods.

Verify the app and open its App Store page →

iPhone · iPad · Home

Setup and first launch

App installation, VPN configuration permission, and remote connectivity are separate steps. Check them in order instead of reinstalling right away.

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

Shadowrocket is available for iPad and iPhone from the same App Store product page. Check that page for system requirements and universal purchase details. If you've already purchased it, check the Apple Account used for Media & Purchases on your iPad, then look in your purchased items or check the download status on the product page. The layout may vary by screen size, but interface labels such as Home, Config, and Global Routing can help you find your way. Being able to install the app on a device does not mean your existing configuration will sync automatically.

What should I do when a VPN configuration permission prompt appears on the first connection?

When you first start a connection, the system may ask permission to add a VPN configuration. This system authorization is needed to establish a connection on your device. Make sure the request comes from Shadowrocket, then follow the prompt to allow it and complete device authentication. This permission does not add server or subscription details; you'll still need a configuration you already have. If you previously declined, return to the app and start the connection again. On managed devices, management policies may restrict this permission, so check your device management settings.

What if the connection switch on Home won't turn on, or turns off right away?

First determine whether VPN configuration permission is missing or the connection fails immediately after permission is granted. For a permission issue, check system authorization and device management restrictions. If the connection fails, check that a valid entry is selected under SERVER, all server details are complete, and no other VPN connection is in use. Temporarily turn off On Demand and test manually to avoid interference from automatic reconnections. Keep the exact error message and change settings one at a time. Avoid deleting the app as a first step, since that may also remove local data you haven't backed up.

The interface is in English. How do I find the controls described in the guide?

This guide keeps interface labels in English so you can find them by name on different devices: Home shows the connection status and SERVER, Add Server lets you enter server details you already have, Config manages configurations, and Settings contains app settings. To check whether you can change the language, open the app's options in system Settings. Available languages depend on what your device displays. Don't rely only on a control's position; screen size can change where it appears compared with an illustration in the guide.

After opening the app for the first time, how can I check that everything is ready to connect?

First, confirm that your regular Wi-Fi or cellular connection can access the internet. On Home, check that SERVER contains a valid entry you imported and that the intended entry is selected. Then check Global Routing: choose Config to use configuration rules, or Proxy to test the selected server on its own. Allow the system to add a VPN configuration before starting the connection, then check the status and try opening a webpage. Having the app installed, seeing an entry in the list, and turning on the connection are separate steps; none replaces the full check.

Follow the first-connection guide step by step →

Subscribe · Add Server · SERVER

Subscriptions and server imports

The steps below assume you already have a subscription or server details. They distinguish retrieving an address, parsing its format, and establishing a connection.

Subscription import failed. How can I tell whether the address or network is the problem?

Copy the full subscription address you already have and check for extra spaces, line breaks, or text added by a messaging app. Then make sure the import type is Subscribe. If parsing fails, check whether the response is actually subscription data rather than a sign-in or error page. If it times out, first check whether your current network can reach the address. A subscription may contain access credentials, so don't post the full address publicly. If the import still fails, note the error type and ask your service provider to check the address and format.

How do I update an existing subscription, and what should I save first?

On Home, find the relevant subscription group, run its update action, and wait for the result. Before updating, note the currently selected entry and any important changes you've made; changes to the remote list may replace, remove, or rename entries. Afterward, check which entry is selected under SERVER, then run a Connectivity Test and try accessing a site. A subscription update refreshes entry details; it does not change Global Routing, and it should not be assumed to overwrite rule files managed separately in Config.

What should I do if the list is empty or an entry has disappeared after updating a subscription?

Check whether the update succeeded and whether the subscription address you already have is still valid. An empty list may result from a failed request, an unexpected response, or changes to the available entries on the remote end; it doesn't necessarily mean there's a problem with the app installation. If you have a backup from before the update, keep it and don't repeatedly delete and recreate the subscription. Ask your service provider to confirm the subscription's validity and list changes, then update again. Once the entries return, select an entry under SERVER again so you don't keep using one that has been removed.

Manual server setup still fails. Which fields should I check?

Use the server details you already have and check the protocol, address, port, and any authentication details required by that protocol. Then review additional fields such as TLS, SNI, transport, and path. Required fields vary by protocol, so don't apply one protocol's parameters to another. Check for extra spaces introduced when copying, and make sure you haven't entered a display name as the server address. Change and test one related group of parameters at a time to narrow down the cause. Hide passwords and other credentials before sharing troubleshooting details.

See how to import an existing subscription and connect →

Global Routing · Config · Connectivity Test

Routing rules and troubleshooting

Run comparison tests on the same network and destination first, then check whether the issue involves the server, rules, DNS, or automatic connection conditions.

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

Config routes traffic according to the rules in the active configuration. Proxy sends traffic the client can handle through the selected proxy route. Direct connects directly. For everyday rule-based routing, choose Config and confirm the active configuration file and target policy. To troubleshoot a server, switch briefly to Proxy for comparison; use Direct to compare direct access. These modes aren't speed settings. Record your test results, then restore the configuration you need.

The app says it's connected, but webpages won't load. What should I check, and in what order?

A connected status only means a local connection has been established; it doesn't confirm that the remote server, DNS, or destination site is working. Disconnect and confirm that your regular network works, then check the selected entry under SERVER and run a Connectivity Test. Next, compare Proxy and Config against the same destination. If Proxy works but Config doesn't, focus on rules and policies. If both fail, check the server status and parameters. If only some domains fail, check DNS and the destination site. Change one variable per test.

Why isn't my DOMAIN-SUFFIX rule routing traffic as expected?

Confirm that Global Routing is set to Config and that the configuration file you edited is the one in use. Check the rules from top to bottom; an earlier match may already determine where traffic goes. Put FINAL at the end of the rules. Then verify the domain condition, comma separators, and target policy name. Write PROXY, DIRECT, and REJECT according to the rule syntax. Also check which domain the request actually reaches: a page may load resources from several domains, so one rule may not cover everything on the page.

Can On Demand affect manual disconnection or battery life?

On Demand can start a connection when its conditions are met, so the connection may come back after you disconnect if those conditions still apply. If the connection keeps changing unexpectedly, turn off On Demand temporarily and test manually. Battery use also depends on signal strength, traffic, frequent reconnections, and background activity; the VPN indicator alone doesn't tell you how much power is being used. Compare battery usage under similar conditions in system battery statistics, and avoid unnecessary repeated tests. Before turning On Demand back on, check that its triggers match how you currently use the network.

Why is real-world browsing still slow when Connectivity Test shows low latency?

Connectivity Test is a measure of connectivity under specific test conditions; it isn't the same as webpage load time or sustained throughput. Real-world access also depends on the destination site, DNS, server load, packet loss, and local signal strength. Compare entries you already have on the same network, against the same destination, and at roughly the same time. Note whether the delay occurs on the first load, during sustained transfers, or as intermittent drops. Don't judge performance by a single latency figure or treat a successful test as proof that every app and domain will work.

Learn about configuration sections, rule types, and match order →