FAQ / Official Manual
Shadowrocket FAQ
Purchase verification and restoration, first-time permissions, importing an existing subscription, and troubleshooting connections and rules. Check each step in the process, and avoid changing multiple settings at once.
Official manual · Troubleshooting indexStart by identifying where the problem occurs: whether the app is available to purchase and install, whether the system allows a connection, whether your existing details have been imported correctly, and finally how requests match rules. Opening the app, seeing a connected status, and getting a test result each indicate a different state; none proves the others.
This guide assumes you already have your own subscription or server details. For a step-by-step walkthrough, see the Getting Started Guide. To check an individual setting, see the Settings Reference. Keep your original configuration while troubleshooting, note the exact error, and don't share links or QR codes containing credentials.
App Store / Purchase
Purchase verification and recovery
First, distinguish the purchasing account, the App Store storefront, and in-app data. Check purchase eligibility and connection requirements separately.
Can't find Shadowrocket in the App Store? Start with these checks.
Check that you entered the full product name, then open the App Store product page from this site's app page to tell a search issue from storefront availability. Check the Apple Account used for Media & Purchases and its country or region—not just your device language. If you need to change regions, follow Apple's process in Settings under your Apple Account: Media & Purchases, View Account, then Country/Region. Review the requirements for account balance, subscriptions, and payment methods first; don't repeatedly switch regions to test availability.
How can I verify the official Shadowrocket app in the App Store?
Check all three: 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. A similar name or search ranking alone isn't enough to verify the app. Before purchasing, review the product page's compatibility and purchase information to confirm your device is supported. Shadowrocket is available only through the App Store. This site's app page explains how to verify the listing; payment and installation take place in the App Store.
Do I need to buy Shadowrocket again after getting a new iPhone or reinstalling it?
On the App Store, sign in with the Apple Account originally used to buy Shadowrocket, open your account's purchased apps, and download the app again. Usually, you won't need to purchase it again. If a price still appears, check the account signed in for Media & Purchases, your purchase history, and the current storefront; then check whether the app is hidden. Being signed in to iCloud alone doesn't confirm that you're using the same purchasing account. Redownloading restores your entitlement to the app, but subscriptions, server details, and local configuration from your old device must be restored from your own backup.
Can I install Shadowrocket on iPad? Where can I check support for other Apple devices?
Shadowrocket is primarily used on iPhone and iPad. On iPad, open the same App Store product page and check compatibility; use the original purchasing account to see whether you can download it. Check the compatibility section on that page for Mac, Apple TV, and Apple Vision as well. System requirements and eligibility for universal purchases are as listed on the App Store page. Layouts and controls can differ between devices, so don't assume a button will be in the same place on each one.
What does the one-time purchase include? Can I connect right after buying?
A one-time purchase of the client is not a service plan. It gives you access to the Shadowrocket client; you still need your own subscription or server details to connect. This site does not provide, sell, or recommend nodes or subscriptions. The US storefront price is about $2.99; other storefronts show local currency. Check the App Store page for the current price and purchase terms. A successful payment doesn't mean you already have a working connection. To get started, import your details, select an item, and approve the system permission request.
See how to verify the App Store listing and restore a purchase →
Home / Settings
Installation and first launch
Check system permissions, connection details, and switch status separately. Before reinstalling, confirm what your backup includes.
What does the system prompt to add a VPN configuration mean when I first open the app?
When you start a connection for the first time, the system may ask to let Shadowrocket add a VPN configuration. This is used to establish a system network extension connection. Make sure the prompt follows an action you just initiated in Shadowrocket, then approve it through the system flow. Your device may ask for a passcode or biometric authentication. This permission does not add a server address, credentials, or subscription details. If you dismissed the prompt, try starting a connection in the app again. Managed devices may also be restricted by organizational policies; check with your device administrator.
What should I do if the connection switch on Home won't turn on or turns off right away?
First, confirm that you've imported a valid item and selected the server you want to use. Check for any pending system permission prompt. In Settings, open the system's VPN configuration management and check whether a Shadowrocket configuration exists and another connection is already active. Stop other VPN connections, then test Shadowrocket on its own. If it still turns off immediately, note any message from the app and check Log for configuration parsing or network extension errors. Keep a backup before considering recreating the configuration; don't delete all your data outright.
The interface is in English. How do I find the controls mentioned in the guide?
This guide keeps interface labels in English: Home is where you view and select connection items; Add Server is for entering server details; Config is for managing configuration files; Settings is for viewing settings; and Global Routing is for choosing how traffic is handled. Look for these labels rather than relying on fixed screen coordinates in a screenshot. The app's display language and available language options depend on the installed version and system settings. If your system offers per-app language settings, check there; there's no need to keep changing your device's entire language to follow the guide.
What should I check if Shadowrocket uses more battery when connected?
Compare similar usage periods in your system's battery statistics, separating continuous data transfer and background tasks from the client's own activity. Frequent reconnects, repeated speed tests, detailed logs, and an unstable network can all increase activity. When troubleshooting is done, stop repeated tests and reduce logging detail if appropriate. Check that On Demand behaves as expected and doesn't repeatedly start connections when they're not needed. Don't draw conclusions from a single battery drop or assume turning off all rules is a general battery-saving fix. Change one setting at a time and observe the result.
Do I need to import everything again after an app update?
Updates are delivered through the App Store and usually don't require you to reimport existing data. Still, back up important configurations and keep your subscription details safe before updating. If something changes after an update, first check that the selected server, Config file, and Global Routing match your previous setup, then review the App Store release notes and any in-app messages. App updates, Subscribe content updates, and remote configuration updates are separate actions; doing one doesn't replace the others. Don't repeatedly reinstall the app to troubleshoot an issue you haven't identified yet.
Follow the Getting Started Guide to check your first connection →
Subscribe / Add Server
Subscription and server import
These steps use details you already have. Check the content and format first, then check your network and the subscription's validity.
An existing subscription won't import. What should I check, and in what order?
First, check that the subscription URL is complete and contains no extra spaces, line breaks, or explanatory text. Make sure it's your subscription URL, not an account sign-in page. Check whether your current network can reach the URL and whether the subscription has expired, been revoked, or needs renewed authorization. If parsing fails, note the error and ask the original provider whether the returned format is compatible with Shadowrocket. Don't guess at changes to URL parameters. Subscription URLs may contain access credentials, so don't post the full URL in public comments or screenshots while troubleshooting.
The list didn't change after I updated Subscribe. Does that mean the update failed?
Not necessarily. If the update succeeded but the remote content hasn't changed, the list may stay the same. First, make sure you updated the intended Subscribe group and check for an error message. Then check your network, the subscription's validity, and whether the provider actually changed its content. Updating a subscription usually updates the server entries managed by that subscription; it doesn't update local Config rules. Note your current selection before updating, then check that the selected item is still there afterward. Don't confuse changes to the list with changes to the connection selection or rules.
Scan QR Code couldn't read the code. How else can I import the details?
Check that camera access is enabled in system settings, and make sure the entire QR code is clear, unobstructed, and free of screen glare. Scan QR Code can only process supported content; a readable code isn't necessarily valid server information. If the app says the format isn't supported, ask the original provider to verify the encoded content. You can also use a complete link you already have or enter the corresponding fields manually in Add Server. Don't share a screenshot of the QR code publicly; it may contain an address, authentication details, or subscription credentials.
When adding a VLESS server manually, what else do I need besides the address and port?
The address and port are only part of the connection details. For VLESS, also check the UUID, transport, TLS, and related server name against the information you already have. Some transports may also require a path or Host. The fields must match the server's actual configuration as a set; don't combine details from different examples. Confirm that you've chosen the right protocol in Add Server, then compare each field with the original details. Ask the original provider about anything unclear. Don't disable certificate verification to conceal a name or certificate error.
My list is empty after switching devices. Why didn't reinstalling the app restore my subscription?
App Store purchase history and in-app connection details are separate kinds of data. Redownloading the app doesn't restore subscriptions, servers, or local rules. First check whether iCloud sync was enabled and completed on your old device, or whether you kept an exported configuration and your subscription URL. After restoring, check the server list, current Config, and Global Routing separately, then test the connection. A single rule configuration file isn't a complete backup. Verify the exported content and sync scope on the original device, and protect any credentials it may contain.
Learn about configuration backups and moving to a new device →
Global Routing / Diagnostics
Routing rules and troubleshooting
Test the underlying network first, then check the server, rules, and DNS. Change one condition at a time so you can compare results and roll back easily.
How should I choose between Config, Proxy, and Direct in Global Routing?
Config uses the rules in the active configuration to decide where requests go. Proxy sends requests mainly through the selected proxy. Direct connects to destinations directly. For everyday rule-based routing, check the Config file and select Config. To troubleshoot a server connection, briefly switch to Proxy for comparison, then restore your previous setting. Direct can help check whether your local network is working, but it can't verify that a proxy server is available. System traffic, exclusions, and special configurations may also affect the result; a routing mode label doesn't guarantee how all traffic will be handled.
Shadowrocket says it's connected, but I can't access the internet. What should I check first?
Turn off the connection and check whether your current Wi-Fi or cellular network can reach sites that normally work. If the underlying network is having issues, troubleshoot it first. Then turn on Shadowrocket, confirm the selected server is valid, and check Global Routing and the current Config. Compare Proxy and Config using the same destination. If only Config fails, focus on the rules and DNS; if both fail, check server authentication, TLS, and server status. Change one thing at a time and note the relevant request error in Log. A connected status doesn't prove that a particular site is reachable.
Connectivity Test returns a result, so why won't a webpage open?
Connectivity Test reports the result for a specific test method and destination at a particular time. It doesn't represent how every website or app will work. Even if the test destination is reachable, a site you need may still fail because of DNS, TLS, rule matching, the server's exit, or the destination's own status. Confirm the test method and destination, retry the same page using your usual routing mode, and check the corresponding request log. Don't judge a connection by a single test result; running more tests won't replace checking the specific error and routing decision.
A rule isn't working as expected. How can I check the matching order?
First, confirm Global Routing is set to Config and that you're using the configuration file you just edited. Rules are matched from top to bottom, so put more specific rules before broader ones and place the FINAL fallback at the end. Then check the request log for the actual domain, destination address, and matched policy. Distinguish what rules such as DOMAIN-SUFFIX and IP-CIDR match. REJECT only affects requests matched by that policy; it can't guarantee that all content on a page will be blocked. Caching, reused connections, and resources on the same domain can also affect what you observe.
Should I change my DNS settings right away if I suspect a DNS problem?
First, confirm the issue is a domain resolution failure rather than an authentication failure, connection timeout, or certificate error. Note the DNS settings in your current Config, and use actual request logs to check resolution results and where requests go. If you're using dns-server = system, it means the system's DNS configuration is in use; it doesn't guarantee that name resolution is working correctly on your current network. Back up your settings before making a change, adjust just one relevant option, and retry the same destination. Don't combine multiple DNS settings from unknown sources or attribute every access problem to DNS.
More on settings and terminology
Keep a restorable copy of your configuration before checking individual settings. Rule keywords and policy names stay in English; don't confuse a Global Routing mode with a policy used in an individual rule.