Official Guide · FAQ Index

Shadowrocket FAQ

First identify whether the issue is with purchasing, importing, or connecting, then follow the relevant checks. Change one setting at a time and keep the original error text to compare results.

  • 4 troubleshooting paths
  • 20 how-to answers
  • Interface labels stay in English

App Store

Verify and Purchase

Check the storefront and purchase history first, then confirm whether the app is available. System language, account storefront, and app compatibility are separate things to check.

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

First, check which App Store storefront your account uses; device language and system region alone don’t determine it. Open your Apple Account in Settings, go to Media & Purchases to check the account, then check Country/Region. Menu names may vary slightly by system version. App availability depends on the current storefront. Use the Get the App page to open the product listing directly. If you need to change your region, use the official Country/Region process in your account and first address any balance, subscriptions, payment methods, or other requirements.

How can I verify that the Shadowrocket listing is genuine?

Check the developer, official icon, and app ID together; don’t rely on the name or search ranking alone. The developer should be Shadow Launch Technology Limited, the icon should match the official icon in this site’s header, and the product page URL should include id932747118. A similar name doesn’t mean it’s the same app. Before buying, expand the product page to review compatibility and pricing. The Get the App page in this guide brings these checks together. Once verified, complete your purchase in the App Store.

Do I need connection details after buying Shadowrocket?

You’ll need to provide your own existing subscription or server details. A one-time app purchase is not a service plan: buying Shadowrocket pays for the app and does not provide a server to connect to. The US storefront lists it at $2.99 as a one-time purchase; the actual price is the amount shown on the App Store page. Other storefronts show local currency. This site does not provide, sell, or recommend servers or subscriptions. Check the validity, usage limits, and expiry of your existing details with their original provider.

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

Check your App Store purchases using the original purchasing account before paying again. On the new device, open the App Store account page and look for your purchased apps. Find Shadowrocket and use the redownload option shown there. If a price is still displayed, check the account used for Media & Purchases, your purchase history, and whether the app is hidden. Eligibility for redownloading and purchase availability are subject to the App Store listing. Restoring the app does not restore its configuration; check your subscriptions and local rules separately.

Can I install Shadowrocket on iPad? Where can I check compatibility with Mac and other Apple devices?

Check the same App Store product page for Shadowrocket availability on iPad. If you’ve already purchased it, look up your purchases using the original purchasing account. This guide focuses on iPhone and iPad; compatibility with Mac, Apple TV, and Apple Vision is also listed on the product page. System requirements and purchase eligibility are subject to the App Store listing. Family Sharing eligibility likewise depends on the store listing and your family purchase settings; being in the same family group does not automatically grant purchase access.

Check next: Three Checks to Verify the App · App Store Guide

Home / Settings

Setup and First Launch

Complete system authorization before your first connection. Check redownloading the app, restoring in-app data, and establishing a VPN connection separately.

Should I allow the Add VPN Configuration prompt the first time I connect?

After confirming the prompt was triggered by a connection you just started in Shadowrocket, follow the system flow to allow the VPN configuration and complete any required device authentication. This prompt sets up a system VPN configuration; it does not import a subscription or check whether a server is reachable. If you previously denied the prompt, return to the app and start a connection again. If a related configuration already exists in the system, first check which app it belongs to. Don’t repeatedly delete system entries; note your current settings and follow the prompt you see.

What should I do if the connection switch won’t turn on or turns off right away?

First distinguish incomplete system authorization from a failed connection. Confirm that Home has a usable server selected and all required fields are filled in. Then check in system Settings for a Shadowrocket VPN configuration and any pending authorization prompt. Check whether another configuration is using the system VPN connection or whether device management policies restrict it. After checking, try connecting again and note the immediate error. If it still fails, restart the device and test once more; repeatedly toggling the switch can obscure the original error.

The app interface is in English. How should I follow this guide?

Find features by their English interface labels; don’t guess where they are based on a translation. This guide keeps labels such as Home, Config, Settings, Add Server, and Subscribe in their original form, while explaining what each step does. Check the app’s settings in system Settings for a preferred-language option; available choices depend on what the app and system display. iPad landscape layout may differ from iPhone, and interface changes can move controls. Check both the label and the current screen when looking for an option.

Does Shadowrocket need to stay in the foreground after connecting?

Usually, no. The system VPN mechanism maintains the connection, but verify its status in the system VPN settings and by checking whether the intended sites are reachable. Before switching to another app, finish authorization and confirm the connection is established. If it drops after a network change, check whether the current network has internet access, whether the server is reachable, and whether On Demand is triggering as expected. The app running in the background, a VPN shown as connected by the system, and a reachable website are separate conditions; check each one independently.

Why didn’t my configuration reappear after restoring my app purchase?

App Store purchase history and in-app data are restored separately. Recovering a purchased app lets you download the client again; it does not guarantee that local servers, subscriptions, rules, or the selected item will be restored. First check what your device migration or system backup actually restored, then review the current in-app lists. Reimport missing items from your own saved subscription, server details, or configuration backup. Check existing entries before importing to avoid duplicates or accidentally selecting an older item.

Next step: Read the First Connection Guide

Subscribe / Add Server

Subscriptions and Server Imports

These steps assume you already have your own subscription or server details. Importing, updating, and establishing a connection are three separate checks.

What should I check, and in what order, if a subscription import fails?

Check that the link is complete, then check the network and the response. Remove any leading or trailing spaces and line breaks, and make sure you’re using the subscription URL rather than a webpage describing it. Then check whether the original link has expired, whether you have access, and whether the current network can reach it. Pasting it again usually won’t help if the server returns a login page, an error page, or an unsupported format. Keep the app’s error message and ask the original provider to confirm the format. Don’t share the full subscription URL in troubleshooting notes.

After adding a server manually with Add Server, it won’t work. Which fields should I check again?

Compare each field with the original server details; don’t check only the address and port. Verify the protocol first, then the authentication details. If the original information includes TLS, SNI, a transport method, or a path, make sure those match too. Fields with the same name may work differently across protocols, and leaving a field blank doesn’t always select the right default. After saving, confirm that Home has selected the server you just added, then test the connection. Change one thing at a time to identify which setting caused the failure.

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

Find the relevant Subscribe item in Home and use its update action. Check the result instead of assuming it worked because the list refreshed. If an option to update subscriptions when opening the app is enabled, check whether the most recent update succeeded. An update changes entries based on the subscription response, so the previously selected item may have been removed or renamed. Check the selection again afterward. Updating a subscription refreshes imported details; it does not update all rules in Config or the app itself.

What should I do if a subscription update times out, the link has expired, or the list is empty?

Keep any configuration that still works; don’t clear it and reimport right away. For a timeout, check the current network and whether the subscription URL is reachable. If the link has expired, check its validity period and access permissions. If the list is empty, check whether the response actually contains recognizable server details. Test once on another working network to distinguish a local network issue from a remote response problem. Note the error text, where it occurred, and whether all subscriptions are affected, then contact the original provider. Avoid repeated updates that could overwrite useful troubleshooting clues.

What can I safely screenshot or share when troubleshooting an import?

Share only the minimum needed to diagnose the issue, such as the error text, protocol, steps taken, and whether it timed out. Hide full subscription URLs, QR codes, authentication fields, and configuration details containing credentials. Check display names too, as they may contain personal information. QR codes can encode the same connection details as text links, so don’t share them publicly just because they’re images. Keep an original copy for your own reference and share only a redacted version.

More details: Manually Update a Subscription and Troubleshoot Failures · Glossary

Global Routing / Config

Routing Rules and Troubleshooting

Check “connected” status separately from whether requests reach their destinations as expected. Compare results using the same server and destination, changing one thing at a time.

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

Choose Config for everyday rule-based routing; the active configuration’s rules determine how requests are routed. Use Proxy to temporarily test the selected server, or Direct as a comparison using a direct connection. Switching modes is not a universal fix: bypass settings in the configuration, DNS, and system network can still affect results. Before testing, note the original mode, selected server, and destination. Change one thing at a time, then restore the intended Config setting when you’re done.

The app shows connected, but there’s no internet. Which layer should I check first?

Check the basic network, server, rules, and DNS in that order. Disconnect first to confirm the network itself works, then check the selected server and subscription validity. Run Connectivity Test, but don’t treat one successful test as proof that every site is reachable. If only some addresses fail, note the destination domain, check which rule it matches in the current Config, and verify that DNS returns a valid result. When comparing Config and Proxy, keep the same server selected; don’t change the network, server, and rules at the same time.

A custom rule isn’t taking effect. Where should FINAL go?

First confirm that Global Routing is set to Config and that the edited configuration is selected. Rules in the Rule section are checked from top to bottom; matching stops at the first rule that applies. Put more specific exceptions before broader rules, and put FINAL last as the fallback. PROXY, DIRECT, and REJECT mean route through the proxy policy, connect directly, and reject the request, respectively. Retest the same destination after editing and check which rule the domain actually matches. A rule being present in the file doesn’t guarantee it will be applied.

Battery drain has increased since enabling the app. How can I tell whether the current configuration is responsible?

Start by checking system battery usage over a representative period; don’t draw conclusions from brief device warmth alone. Video streaming, sustained uploads, frequent network changes, connection retries, and extended logging can all increase power use. Compare before and after under similar network and usage conditions. Check whether the server disconnects frequently, tests are running repeatedly, or diagnostic logging is still enabled. Keep necessary connection settings and change one item at a time. Battery statistics and the traffic figures in Data serve different purposes and can’t be directly converted into one another.

How should I use On Demand and Data for routine checks?

On Demand triggers connections based on configured conditions; it doesn’t guarantee that a server is available. To troubleshoot automatic reconnections, check the trigger conditions and current network, then see whether connections keep repeating. If the connection returns after you disconnect manually, check this setting first. Data shows traffic records. Before comparing readings, confirm the statistics scope, time range, and whether the data was recently reset. A zero reading may mean the relevant traffic didn’t pass through the item being tracked; a high reading isn’t necessarily an error. Consider actual traffic and connection logs together.

Continue troubleshooting: Global Routing · Diagnostics · Rule Order and FINAL