Shadowrocket
FAQs & Troubleshooting
Start by separating App Store purchase, configuration import, and connection issues, then follow the relevant steps.
This page assumes you already have your own subscription or server details. Choose a category below and expand a question to read the full answer. For step-by-step instructions, see the getting started tutorial.
Purchase Verification
App Store availability, payment status, and purchase entitlements are handled by the App Store. Check those separately from in-app connection settings.
Can't find Shadowrocket in the App Store? Check these things first
Open the App Store product page from this site's official purchase page to tell whether search failed or the app is unavailable in your current storefront. Your storefront is tied to the Apple Account used for purchases, not your device language. To check it, go to Settings → Apple Account → Media & Purchases → View Account → Country/Region. If you need to change regions, follow Apple's official process and review its requirements for balance, subscriptions, and payment methods first. Don't switch regions repeatedly just to try another search. Availability and purchase terms are shown on the current App Store page.
How can I verify that an App Store listing is the genuine Shadowrocket app?
Check the product name, Shadowrocket, the developer, Shadow Launch Technology Limited, the official icon, and the app ID. The product page URL contains id932747118, corresponding to app ID 932747118. The icon should match the official icon in this site's header. Similar names or icons in search results aren't enough to verify an app; open its product page and confirm the developer and ID. Before purchasing, review the price, compatibility, and purchase terms. Refer to the App Store page for current details.
Does buying Shadowrocket include a working server connection?
No. A one-time purchase of the client is not a subscription to a server service. Your purchase gives you the right to use the Shadowrocket app; you must provide your own subscription or server details to connect. The US storefront lists a one-time purchase price of $2.99. Actual pricing and purchase terms depend on the App Store page; other storefronts show local currency. Subscription renewals, data allowances, and server availability are managed by the relevant service and aren't included in your App Store purchase. Before using the app, make sure your existing configuration is still valid, then import it and test the connection.
Do I need to buy Shadowrocket again after changing or restoring a device?
In most cases, sign in with the Apple Account used for the original purchase, then find the app in your App Store account's purchased apps and download it again. Menu names may vary by system version. If you see a price button, first check the account used for Media & Purchases, your purchase history, and the current storefront; don't pay again straight away. Redownloading the app doesn't restore all in-app settings, so back up your configuration before changing devices. If you plan to use Family Sharing, check the product page and your family settings. Refer to the App Store page for eligibility details.
A purchase or download won't complete. How should I troubleshoot it?
Read the specific App Store message first and identify whether the issue is an incomplete payment, account verification, insufficient device storage, or a network interruption. Check your purchase history to see whether the transaction went through, then address any payment method or pending terms. If the purchase is listed, try downloading the app from Purchased on the same account. Also check available storage and device compatibility; refer to the App Store page for system requirements. If the store keeps showing errors, note the exact message and contact Apple Support. In-app server settings can't fix App Store payment issues.
Installation & First Launch
Installation, system authorization, and server availability are separate steps. Complete any required system authorization first, then verify your existing configuration.
Can I install Shadowrocket on iPad, and do I need to buy it again?
Shadowrocket is primarily used on iPhone and iPad. On your iPad, open the App Store with the Apple Account used for the original purchase and check the product page or your purchased apps. If that account already owns the app, you can usually download it again. Check the App Store page for device compatibility, system requirements, and purchase terms. After installation, you'll still need to import your existing configuration; owning the app doesn't automatically sync its settings. The same product page's compatibility section also has information about Mac, Apple TV, and Apple Vision.
Why am I asked to add a VPN configuration when I connect for the first time?
This is the system authorization step that allows the app to create a VPN configuration, so Shadowrocket can handle network traffic according to the selected mode. Make sure you've opened the verified Shadowrocket app, read the system prompt, and completed any requested device authentication. Authorization doesn't provide server details or confirm that your configuration works. If you previously canceled, return to the app and try connecting again, then follow the system prompt. If your device is managed by an organization or has usage restrictions, check its management requirements first. Don't delete system configurations you don't recognize.
What if the connection switch on Home won't turn on or switches off right away?
First check that you've imported a configuration and selected a working server, then confirm that system VPN authorization is complete. Return to Home and try again. Note whether the switch turns off immediately or stays on while webpages fail; these require different checks. If it turns off, check for other VPN connections in system settings, device management restrictions, and app alerts. Multiple connection mechanisms can interfere with each other. Note the exact error before changing settings, and don't delete all configurations without a backup. If the switch stays on but you can't access anything, troubleshoot the network and DNS after connection.
The app interface is in English. How do I match it to the tutorial?
This official manual keeps interface labels in English so you can find them in the app: Home shows servers and connection status; Add Server is for entering server details; Config manages configuration files; Global Routing selects how traffic is handled; Settings contains app settings. You can also check whether your system offers a language option for the app; available languages depend on what the app and system currently display. When following a tutorial, enter values according to each field's purpose. Don't enter translated explanations in protocol names, rule keywords, or server parameter fields.
Does using more battery after connecting mean I have to keep the app open?
Once connected, you usually don't need to keep the app in the foreground. Battery use depends on traffic, wireless signal strength, server reconnect frequency, protocol, and additional processing settings. Compare your system's battery statistics under similar usage conditions rather than comparing a moment before and after connecting. Pause repeated tests and frequent subscription updates, check that the server isn't repeatedly disconnecting and reconnecting, then review recent configuration changes. To stop traffic handling, disconnect explicitly and check On Demand settings; leaving the app screen doesn't disconnect it.
Follow the tutorial to connect for the first time → · Look up interface labels and parameter definitions →
Subscription & Server Import
First identify whether your existing content is a single server, a subscription URL, or a configuration file. Then check its format, validity, and update results.
My existing subscription won't import. What should I check, and in what order?
First make sure you copied the complete subscription URL you already have, not an account page, help webpage, or truncated text. Check for leading or trailing spaces, line breaks, and extra quotation marks. Then determine whether the URL can't be reached or its response can't be parsed. For a connection failure, check your current network and whether the service is available. For a parsing error, confirm that the subscription uses a format supported by Shadowrocket. If needed, ask the original service provider to check the URL's status and format. Don't repeatedly edit verification parameters in the URL. Subscription URLs may contain credentials, so never post the full address on a public page or in a screenshot.
Scan QR Code recognizes the code, but no server is added. Why?
Reading a QR code only confirms that its contents were recognized; it doesn't mean they contain importable server details. Make sure the code comes from a configuration you already have, and check whether it contains a single server, a subscription URL, or an ordinary webpage. After scanning with Scan QR Code, check the app's import confirmation or error message. If the format isn't supported, verify what the original content represents rather than scanning the same image repeatedly. Use a clear, uncropped image if the code is blurry or cut off. Protect any passwords, addresses, and verification parameters in the recognized content.
Which fields are easiest to get wrong when adding a server manually with Add Server?
Choose the protocol that matches your existing server, then check the address, port, and authentication fields one by one. Fields for VLESS, Trojan, WireGuard, and other protocols aren't interchangeable just because their names look similar. Enter TLS, sni, transport, and path values exactly as shown in your original configuration. The server address usually contains only a hostname or IP address; don't paste the full subscription URL into it. After saving, make sure the new entry is selected before testing. If your provider gave you only a subscription, import it instead of guessing missing parameters.
How do I update Subscribe, and why does the server list change afterward?
In Home, find the relevant subscription group and use the update action shown in the current interface. Check for request or parsing errors. Updating reads the subscription content again, so the local list may change if the provider has changed server names, parameters, or available entries. A successful update doesn't mean every server has passed a connection test. Note the selected entry before updating, then check whether it's still present or has been replaced. If updates keep failing, preserve any working configuration and verify the URL. Don't delete the whole subscription group just to refresh it.
Are importing Subscribe and importing Config the same thing?
They serve different purposes. Subscribe usually fetches and updates a list of server details. A Config file defines traffic-handling settings such as rules and DNS; its contents depend on the file. Having a server list doesn't mean the required rules are enabled, and selecting a Config doesn't mean the server credentials are correct. Before importing, identify the type of content you have. Afterward, check the selected server, active configuration file, and Global Routing separately. Back up a stable configuration before making changes, and don't mistake a subscription update for replacing all your rules.
Routing Rules & Troubleshooting
Narrow down the cause in this order: local network → server → Global Routing → rules and DNS. Change one condition at a time and keep the original settings so you can restore them.
How should I choose between Config, Proxy, and Direct in Global Routing?
Config uses the rules in the current configuration file to handle traffic, making it suitable for everyday use when your rules are ready. Proxy routes traffic through the selected proxy in that mode, which can help briefly check a server connection. Direct sends traffic directly and is useful for comparison with your local network. These are different traffic-handling modes, not speed settings. When troubleshooting, change one setting at a time and record the result for the same destination. If only Config fails, check the matching rules and DNS before rebuilding the server.
The switch says connected, but webpages won't load. What should I check first?
Temporarily disconnect and make sure your local network can load ordinary webpages. Reconnect, then check the selected server and Global Routing mode. A connected status means the system tunnel is established; it doesn't confirm that the remote server, authentication, DNS, and destination website are all working. Use Connectivity Test as an additional check, then try several known-working sites. If none load, verify the server and authentication details first. If only certain sites fail, check their rules, DNS results, and service status. Change one condition at a time so multiple adjustments don't obscure the cause.
Connectivity Test shows a result. Why can't I access anything?
Connectivity Test reports the result for the selected test method and destination at that moment. It doesn't confirm that every site, protocol, or complete workflow is working. Check DNS resolution, rule matches, and connection errors for the destination you're actually trying to reach; a single test value can't verify the entire configuration. If you change DNS while troubleshooting, record the original value and make sure the new address is reachable. Change only one setting at a time. Don't change the server, rules, and DNS all at once just because a domain fails. Compare the same destination in Direct, Proxy, and Config, taking each mode's conditions into account.
How do I check rules if I want only certain websites to use a proxy?
Set Global Routing to Config and make sure the configuration file you edited is the one currently active. For example, to route a specific domain through a proxy and send other traffic directly, put DOMAIN-SUFFIX,example.com,PROXY before FINAL,DIRECT. Replace example.com with the actual destination domain. Rules are evaluated in order, so an earlier match can affect later decisions. Put FINAL at the end as a fallback. A website may also request other domains, so check actual connection records for each one rather than routing all traffic through the proxy.
Can On Demand override a manual disconnect, and should I turn it off while troubleshooting?
On Demand lets the system start a connection when its configured conditions are met; its behavior depends on the enabled conditions and system state. If the connection returns after you manually disconnect, first check whether a relevant condition is enabled instead of assuming the switch is broken. For repeatable troubleshooting, note your current settings and temporarily turn off On Demand, then test a manual connection. Once the basic connection and rules work, restore conditions one at a time. On Demand can't supply missing server parameters or fix an invalid subscription, so verify that manual connection works before configuring it.
See DOMAIN-SUFFIX rule examples → · Read the DNS settings guide →