Official Guide · Troubleshooting index
Shadowrocket Troubleshooting
Check each step in order: getting the app, installing it, importing details, and connecting. First identify where the issue occurs, then expand the relevant answer. Subscription steps assume you already have your own subscription or server details.
Getting the app / Store / Purchase history
Purchases and verification
First identify how to get the app for your device, then check the store details and your purchase history.
Can you use Shadowrocket on desktop and Android? What does it cost on each platform?
Yes. Shadowrocket is available for iPhone, iPad, Mac, Windows, Android, and Linux, with two ways to get it: the iPhone and iPad app costs $2.99 as a one-time App Store purchase; Mac, Windows, Android, and Linux versions are free. For desktop and Android, choose the package for your device on this site’s download page. Files are served from this site under /dl/shadowrocket/. If a system security warning appears on first launch, verify the file’s source, then follow the relevant installation steps below. Don’t treat the warning alone as proof that installation succeeded or failed.
Can’t find Shadowrocket in the App Store? What should you check first?
Check the store country or region for the Apple Account used with the App Store—not just your device language, location, or system region. The app is currently unavailable in the China mainland storefront; in Settings, open your Apple Account’s Media & Purchases, tap View Account, then check Country/Region. If you need to change it, follow Apple’s account settings process, including requirements for your balance, existing subscriptions, and payment details. Product-page visibility can also depend on the storefront; changing search terms repeatedly usually won’t resolve an account-region issue.
How can you verify the genuine Shadowrocket app in the App Store?
Check the app name, Shadowrocket; the developer, Shadow Launch Technology Limited; the official icon; and app ID 932747118 in the product-page URL. Don’t rely on a nickname or a similar-looking icon. The iPhone and iPad app costs $2.99 as a one-time App Store purchase; Mac, Windows, Android, and Linux versions are free. Free availability on other platforms doesn’t verify an App Store listing with the same name. If you see a similar listing, return to this site’s download page to check the product page, and confirm the developer and app ID before paying.
Do you need to buy Shadowrocket again when switching iPhones, reinstalling, or moving to an iPad?
iPhone and iPad can use the same purchase. On your new device, sign in to the App Store with the Apple Account used for the original purchase. Find Shadowrocket in your Apps or Purchased list and download it again; the menu name may vary by system version. If you see a purchase button, check the account, storefront region, and purchase history before paying again. The iPhone and iPad app costs $2.99 as a one-time App Store purchase; Mac, Windows, Android, and Linux versions are free. Restoring the app download doesn’t restore local settings, so back up any configuration in advance.
Does buying the app include a service subscription? How can you check Family Sharing?
A one-time app purchase is not a service plan. The iPhone and iPad app costs $2.99 as a one-time App Store purchase; Mac, Windows, Android, and Linux versions are free. These prices cover the app only, not network services. You’ll need your own subscription or server details to use it. This site does not provide, sell, or recommend servers or subscriptions. To check Family Sharing availability, review the Family Sharing information on the current App Store product page and check your family group’s Purchase Sharing settings, account region, and membership. Restoring a purchase on the same account is not the same as Family Sharing.
Platform choice / System prompts / VPN permission
Installation and first launch
Only bypass a system prompt after confirming the file’s source. Ask the device administrator to handle restrictions on managed devices.
Which Mac version should you choose: Apple silicon or Intel?
Open About This Mac from the Apple menu. If it shows Chip and an Apple chip name, choose the Apple silicon version; if it shows Processor and Intel, choose the Intel version. Don’t decide based only on the Mac’s purchase year or appearance. Get the matching dmg from this site’s download page, move Shadowrocket to Applications, then open it. If macOS says it can’t verify the developer, first confirm the file came from this site’s /dl/ path. Then open Privacy & Security in System Settings, find the blocked app, and follow the prompt to choose Open Anyway. Don’t use trial installations to determine which chip version you need.
Windows SmartScreen warns that the app may be risky. What should you do?
First confirm the installer came from this site’s download page and its URL is under /dl/shadowrocket/. These installers are unsigned, so SmartScreen may appear on first launch. After confirming the source, choose More info in the warning, check the file shown, then select Run anyway. If your device is managed by your workplace or school, policy may block that option; contact the device administrator. Don’t change organizational policies or disable system-wide protection. If you can’t verify the file’s source, its name looks wrong, or the download is incomplete, don’t run it. Get a fresh copy from the download page.
Mac says the developer can’t be verified or the app is damaged. What should you do?
Copy the app from the dmg downloaded from this site into Applications, then try opening it. If macOS says it can’t verify the developer, go to System Settings → Privacy & Security, review the blocked-app record, confirm it’s Shadowrocket, then choose Open Anyway and complete system verification. If macOS still says the app is damaged, download it again and check that you chose the right chip version. Only after verifying the source and confirming the app is in the specified folder, run xattr -cr /Applications/Shadowrocket.app in Terminal, then try opening it again. This command clears extended attributes for the specified app; don’t change it into a command targeting the entire disk.
What should you know before installing Shadowrocket on iPad, Android, or Linux?
Shadowrocket is available for iPad. Check the App Store product page for system requirements and use your own Apple Account to get the app. On Android, download the apk from this site’s download page. If prompted, allow the browser or file manager you’re using to open the file to install unknown apps; you can turn off that permission afterward. On Linux, choose deb, rpm, or AppImage for your distribution. For AppImage, allow execution in the file properties or run chmod +x on the actual file before opening it. If a desktop or Android system shows a security warning on first launch, verify the download came from this site before following the system prompt.
The interface is in English, or the connection switch won’t stay on. What should you check first?
This manual keeps interface labels in English: Home shows servers and connection status, Config is for configuration files, and Settings contains app settings. Before connecting, make sure you have a valid server and have selected it. The first time you turn on the connection switch, follow the system prompt to allow a VPN configuration and complete device verification. If you previously denied permission, try connecting again and check the system VPN settings. If the switch turns off immediately, disconnect any other active VPN, check for device-management restrictions, then restart the app and try again. Don’t start by deleting the app—you could lose unbacked-up server details and configurations.
Subscribe / Add Server / Config
Subscriptions and server imports
Distinguish a subscription URL, individual server details, and a configuration file first. Then identify whether the issue is with downloading the content or establishing a connection.
How do you import an existing subscription URL into Shadowrocket?
Copy the full subscription URL from your own service provider’s details. Make sure it contains no spaces, line breaks, or explanatory text from a chat message. In Home, open Add Server and choose Subscribe. Enter the address in URL and save; the exact location may vary in the current app interface. After importing, check that the subscription group and its server entries appear, then select an entry and run Connectivity Test. If the app detects a URL on your clipboard, verify it before confirming. Subscription URLs may contain access credentials, so don’t share the full address in public screenshots, comments, or troubleshooting records.
How can you tell whether a subscription import failed, returned no content, or had a format error?
First confirm you copied the subscription URL provided by your service provider—not an account sign-in page, announcement page, or ordinary web link. For a failed request, check your network, the full URL, and whether the service is active. If the response is empty, check the service status and whether the subscription actually includes servers. For a format error, check the link type and whether it’s supported by your app version. Change one thing at a time, retry, and note the error text. Don’t enter a subscription URL as if it were a single server address or share the full URL with others. If needed, ask your own provider to confirm what the URL returns.
How do you refresh a Subscribe group, and why might its entries change?
In Home, find the relevant subscription group and use its refresh option. When it finishes, check whether the entries changed and whether an error appeared. The service provider maintains the subscription, so server names, counts, or parameters may change with the returned content. A refresh doesn’t guarantee that the previously selected entry is still valid. Before refreshing, you can note the current group and selection, but don’t rely on manual edits to subscription-generated entries; a later refresh may overwrite them. If refresh fails, check the network and subscription status rather than repeatedly deleting and recreating the group. Back up important local configurations first.
Why won’t a server connect after you enter its details manually or scan a QR code?
A successful import only means the details were added; it doesn’t confirm that the parameters are correct or the server is available. Compare them with your own server information and check the protocol, address, port, and authentication fields one by one. For TLS, also verify server-side requirements such as Server Name, transport, and path. WireGuard’s private key, public key, and Endpoint aren’t interchangeable. After scanning a QR code, check the detected protocol and fields; don’t reuse settings from another server just because the names look similar. Run Connectivity Test first, then use the error to narrow down authentication, resolution, or transport issues.
What’s the difference between Subscribe and Config, and how do you back up a configuration?
Subscribe mainly provides server entries and their connection parameters. Config contains request-handling settings such as rules and DNS. Having a subscription doesn’t mean you’ve selected a suitable rules configuration, and importing a configuration won’t necessarily add your own servers. Before making changes, check which file is active in Config and save a copy using the app’s sharing or export feature. Record server details and subscription URLs separately. Backups may contain credentials, so store them somewhere you control. When switching devices, restore your details first, then check the active configuration, server selection, and Global Routing, testing each one.
Global Routing / DNS / On Demand
Rules and troubleshooting
Separate basic network access, server connectivity, domain resolution, and rule matching. A connected status doesn’t mean every request has completed.
How do you choose among Config, Proxy, and Direct in Global Routing?
Config applies the rules in the active configuration to requests. Choose it when you need rule-based routing and have checked the rules. Proxy sends requests through the proxy policy, which can help you temporarily check whether the proxy route works. Direct connects requests directly and doesn’t replace a server connectivity test. For everyday rule-based routing, select Config and confirm the expected file is active. For troubleshooting, compare all three modes on the same network and to the same destination. Note the original setting and restore it after testing; a temporary switch doesn’t fix a rules issue.
Connected, but there’s no internet access. What order should you troubleshoot in?
Disconnect first and confirm your Wi-Fi or cellular network can access sites that normally work. Connect Shadowrocket, confirm the selected server belongs to an active subscription, and run Connectivity Test. Then check Global Routing, the active Config, and request records to see which policy is applied to the target domain. If multiple networks fail, check the server status and authentication parameters. If only one Wi-Fi network fails, check its sign-in page and restrictions. Change one variable at a time and note what happens; changing the server, DNS, and rules together makes the cause difficult to identify.
Connectivity Test passes, but websites won’t open. Could DNS be the problem?
DNS could be involved, but a successful test doesn’t mean every request a website needs is working. Connectivity Test reports connectivity under its specific test conditions; websites also depend on domain resolution, TLS, rule selection, and requests to multiple resource addresses. First check the domains and matched policies in the request records, then see whether the DNS settings come from a currently usable configuration. Change only settings whose purpose you understand. Compare different networks with the same server, and use another site that normally works as a control. Don’t stack unfamiliar DNS addresses or assume every destination is reachable based on a single test.
Rules aren’t taking effect. How should you check DOMAIN-SUFFIX and FINAL?
First confirm Global Routing is set to Config and the edited configuration file is active. Rules are typically matched from top to bottom, and the matching policy is applied. A broad rule placed too early can prevent more specific rules below it from matching. DOMAIN-SUFFIX matches domain suffixes; it can’t take a full webpage URL with a path. IP-CIDR matches IP ranges. Put FINAL at the end to set a policy for requests that didn’t match earlier rules. Check request records to see which rule actually matched, then adjust the order. Don’t infer that a rule ran just because a webpage opened.
How do you troubleshoot increased battery use or repeated reconnects when networks switch?
Compare the same usage periods in your system’s battery statistics. Consider the effects of heavy data transfer, weak signal, frequent reconnects, and continuous logging rather than comparing a single battery reading. Check whether the device is switching repeatedly between Wi-Fi and cellular, and whether the On Demand conditions match your expectations. For a temporary comparison, note the original settings, then turn off On Demand and test. After troubleshooting, stop detailed logging if you no longer need it, and keep the app updated using the update method for your platform. If reconnects happen only on a particular network or server, investigate that condition rather than clearing all configurations.