Shadowrocket Official Manual

Shadowrocket Troubleshooting

Find answers by when the issue occurs: check purchase and installation first, then existing configuration, and finally connection and routing rules. Change one setting at a time and keep the original configuration so you can retest or restore it.

Verify and purchase

Verify the product before buying, and use the original purchase account when restoring it. App access and connection setup are managed separately.

How can I verify that the app in the store is the official Shadowrocket?

On the product page, check the developer name, Shadow Launch Technology Limited, the official app icon matching the branding on this site, and the app ID 932747118 in the link. Don’t rely on the app name or its position in search results alone. Before confirming a purchase, check the product name and developer again. If either doesn’t match, return to this site’s download instructions and reopen the product page. Check the price, compatibility, and purchase eligibility on the same page; the App Store listing is the source of truth.

Do I need connection details after buying Shadowrocket?

Yes. A one-time app purchase is not a service plan. It gives you access to the Shadowrocket app but does not generate server details you can connect to. The steps that follow assume you already have your own subscription or server details: import them, check the protocol, address, port, and authentication fields, then test the connection. This is the official Shadowrocket website and manual; it covers app operation only and does not provide, sell, or recommend servers or subscriptions. Check app purchase issues separately from issues with your existing connection setup.

How much does Shadowrocket cost, and where can I check the price?

Shadowrocket is a paid commercial app sold as a one-time purchase. The US storefront price is approximately $2.99; other storefronts show prices in local currencies. The current price is the one shown on the App Store product page and purchase confirmation screen. Keep the app purchase separate from any costs for connection services you already use. If the amount differs from what you expected, check the storefront, currency, and product name before deciding whether to continue. Prices in another storefront may not match what your account will be charged.

Do I have to buy Shadowrocket again after changing or restoring my device?

In most cases, you can use the Apple Account that originally purchased the app to download it again from your App Store purchase history or app list. Purchase eligibility is subject to the App Store listing. First, make sure Media & Purchases is using the original purchase account; it may differ from the Apple Account used elsewhere on your device. Restoring the app does not restore Config, subscriptions, or server records, so check your own configuration backups after reinstalling. If the product page still shows a price, check your purchase history before paying again.

Related: Verify the official app using three checks · Restore a previous purchase

Installation and first launch

System authorization, app installation, and configuration transfer are separate steps. Identify where you’re stuck, then address the corresponding prompt.

Why does Shadowrocket ask to add a VPN configuration the first time I connect on iPhone?

This is system authorization required to establish a VPN connection; it does not mean server setup is complete. Once you’ve confirmed the request came from the Shadowrocket app you’re using, follow the system prompt to allow it and complete device authentication, then return to the app and turn on the connection. If you previously denied the request, follow the prompt when you try again. You can then check the VPN settings in Settings. Only edit or remove a configuration after confirming it belongs to the connection you’re troubleshooting. Removing it may require the app to request authorization again.

Can I install Shadowrocket on iPad, and what’s different about the interface?

Check iPad compatibility on the same App Store product page; system requirements are as listed there. If you’ve already purchased the app, confirm the original purchase account in the iPad App Store and check your purchase history. In landscape orientation or a wider window, lists and details may appear in different places. Look for interface labels such as Home, Config, and Settings rather than relying on button positions. After installing the app, check separately whether your existing configuration has been transferred.

The interface is in English. Which items should I start with?

Start by identifying Home, Add Server, Global Routing, Config, and Settings. Use Home to view connection status and controls, Add Server to enter existing server details, Global Routing to set the overall routing mode, Config to manage configuration files, and Settings to review app settings. This manual keeps these labels in English so you can match them to the interface. Available interface languages depend on the current app and system. Before making changes, confirm which screen you’re on, and avoid changing multiple options at once just because the interface is in English.

The connection toggle won’t turn on or switches off immediately. What should I check, and in what order?

First, make sure the device itself has an internet connection. Then check that you’ve selected a valid server record and completed system authorization to add a VPN configuration. Check whether another connection is active on the system’s VPN page, and temporarily turn off On Demand so automatic connection behavior doesn’t affect the test. Return to Shadowrocket, try again, and note the exact message. If the connection still switches off immediately, record the message and steps that triggered it, then inspect the relevant configuration. Don’t clear all records or make reinstalling the app your first step.

Why didn’t my Config and subscription appear on my new device?

Your App Store purchase history confirms your eligibility to get the app; it doesn’t confirm that all app data has been restored. First check whether your old device still has the original Config, subscription records, or an available backup. Then use the app’s export, import, or sync features to transfer them. Before overwriting anything, save the content already on the new device and check whether the import changes the active Config. Subscription URLs and authentication details are sensitive. Transfer them only between devices and storage locations you control.

Related: First launch on iPhone · Get and install on iPad

Import subscriptions and servers

Check that the input is complete, then verify the import result. Saving a subscription URL doesn’t mean usable server entries have been created.

An existing subscription won’t import. Should I check the link or the network first?

Check both, but first make sure you copied the complete subscription URL—not a webpage title, an instructions page URL, or truncated text. Check for extra spaces, line breaks, or punctuation at either end, then confirm the device’s current network can reach the URL. If it returns a login page, an error, or no content, the app usually can’t create server records from it. Once the URL is confirmed to be valid, check that the import type and subscription format are compatible with the app. Hide the full URL and authentication details in troubleshooting screenshots.

Which fields are easiest to get wrong when using Add Server manually?

Choose the protocol that matches your existing server details, then check the address, port, and authentication fields one by one. Match the Shadowsocks encryption method and password, the VMess or VLESS identifier fields, and any additional TLS, SNI, or transport settings to the original details. Don’t guess defaults based on the protocol name, and don’t paste an entire webpage URL into the server address field. Reopen the saved record to check it. If the original details are missing a required field, verify that they’re complete before testing.

Scan QR Code fails, or the scan doesn’t create a usable record. What should I do?

First, make sure camera access is enabled and the QR code is clear, complete, and free of glare or cropped edges. Scanning text doesn’t mean it contains server details the app can import; a QR code can also encode an ordinary webpage URL or instructions. After scanning, check that the generated record has a complete protocol, address, and port. If the QR code came from your own configuration backup, try importing the original text as a cross-check. QR codes may contain authentication details, so don’t share the original image when troubleshooting.

How do I update an existing subscription, and why did its records change afterward?

Find the subscription record in Home and use its update action; the location depends on the app’s current interface. Before updating, make sure your current network can reach the subscription URL. Afterward, check the number and names of the records and which one is selected. If the remote content has changed, local entries may be added, removed, or renamed, so confirm which server you’re using. Manual edits to subscription-generated entries may be overwritten by a later update. Save any standalone records you want to keep using the app’s features.

The subscription imported, but why does the app still say there’s no server available when I connect?

A successful import may mean only that the subscription record was added; check whether it actually contains generated server entries. First review whether the latest update succeeded, then confirm that a specific usable entry is selected and that any policy in Config doesn’t refer to a removed or renamed item. If the subscription URL returns empty content, saving the same URL again won’t fill in missing server details. Also distinguish subscriptions from Config: a subscription manages the source of server records, while Config may contain rules and policies. Check each import result separately.

Related: Import and first connection steps · Protocol field reference

Routing rules and troubleshooting

Narrow down the cause in order: basic network, server, routing mode, rules, and DNS. Assess test results alongside what happens when you actually try to connect.

Which Global Routing mode should I use: Config, Proxy, or Direct?

Config processes traffic according to the rules and policies in the active configuration, making it useful for checking everyday rule-based routing. Proxy sends traffic through the selected proxy, which can help isolate rule-related issues. Direct uses a direct connection path and can help check basic network access. These modes change routing behavior; they won’t fix incorrect server settings. Before troubleshooting, note the original mode, switch only one setting at a time, and test the same destination. Compare the results, then restore your intended setting.

It says connected, but I can’t access the internet. Should I check the server or DNS first?

A connected status means the system has established a connection; it doesn’t guarantee access to every destination. First confirm that the basic network works with the connection turned off, then check the selected server, Global Routing mode, and active Config. If only some domains fail, review the matching rules and DNS results in the request log. If all destinations fail, check server authentication, transport settings, and reachability first. Change one factor at a time and retest the same destination so you can identify the cause instead of changing DNS and rules together.

Connectivity Test passes, but why won’t a webpage load?

Connectivity Test results depend on the test method and destination. They show only whether that part of the test worked; they don’t confirm that a complete webpage request succeeded. A webpage request also depends on DNS, rule selection, TLS, and the destination site’s response. First check whether the test used the same server entry selected for the current connection, then review the failed page’s request log and DNS results. Don’t judge usability by latency alone; consider actual access results and logs together. Repeated bulk tests won’t replace checking the specific point of failure.

Rules in Config aren’t behaving as expected. Where should I look?

First, confirm Global Routing is set to Config and that the active configuration is the one you just checked. Then check for matches from top to bottom: DOMAIN-SUFFIX matches domain suffixes, IP-CIDR matches address ranges, and FINAL handles requests that didn’t match earlier rules. An earlier match may prevent later rules from being applied. Use the request log to verify the destination, matching rule, and final policy. Also confirm that any referenced server still exists; don’t rely on the configuration simply being saved.

A persistent connection is using a lot of battery. Should On Demand stay enabled?

Battery use depends on traffic, signal strength, reconnection frequency, testing activity, and configuration—not just the connection icon. First check app activity for the same period in the system’s battery settings. Then look for frequent disconnects, repeated tests, or sustained data transfer. On Demand triggers connections based on conditions; configure it to suit your network needs. For troubleshooting, turn it off temporarily and see whether a manual connection is stable. Keep network conditions and usage similar when comparing results; there’s no need to turn off every feature at once to reduce battery use.

Related: Settings and connection options · How to troubleshoot DNS