Official Manual · Browse by issue

Shadowrocket Troubleshooting

Find steps for the issue you’re facing, from getting the app to verifying a connection. First check your device, the type of information you have and the error message. Then change one setting at a time, based on what you know, so you can compare the results.

4 issue categories 20 troubleshooting answers Interface labels kept in English
Before you get started

Purchase verification and pricing

Understand the difference between the app’s cost, your store account and connection details. Verify Shadowrocket’s product information on the specified product page.

How much does Shadowrocket cost? Does the app purchase include a service subscription?

There are two pricing options: the iPhone and iPad app costs $2.99 as a one-time App Store purchase; prices may display in local currency and vary by storefront, so check the store listing. The Mac, Windows, Android and Linux versions are free. Buying the app does not include a service subscription. The purchase covers use of the client only. You’ll need your own existing subscription or server details to connect. This site does not provide server access or sell or recommend subscriptions.

How can I verify Shadowrocket on the App Store?

Open the App Store product page listed here and check the product name, Shadowrocket; developer, Shadow Launch Technology Limited; official icon; and app ID, 932747118. Don’t rely on a translated nickname or a similar-looking icon in search results. The iPhone and iPad app costs $2.99 as a one-time purchase; the Mac, Windows, Android and Linux versions are free. A free listing with the same name is not the iPhone or iPad product covered here.

Can’t find Shadowrocket in the App Store? What to check

Open the product page directly to tell whether search failed or the app isn’t available in your current storefront. Shadowrocket is currently unavailable in the mainland China App Store. Check the country or region of the Apple Account used for Media & Purchases; changing your device’s language or region alone won’t help. If you need to change it, go to Settings, tap your Apple Account, Media & Purchases, View Account, then Country/Region, and follow Apple’s instructions about your balance, active subscriptions and payment details. If you don’t meet the requirements, leave your current settings unchanged for now.

Do I need to buy Shadowrocket again after replacing my iPhone or reinstalling the app?

The iPhone and iPad app costs $2.99 as a one-time App Store purchase. The Mac, Windows, Android and Linux versions are free. After replacing your device, sign in to Media & Purchases with the Apple Account used for the original purchase. In the App Store account page, open Apps or Purchased, find Shadowrocket and download it again. If a price still appears, check the purchasing account, storefront and purchase history before paying again. Restoring the app does not restore its configuration; keep your subscriptions and rule settings separately.

Can I install Shadowrocket on iPad? Do I need to buy it separately from the iPhone app?

Yes. The iPhone and iPad app costs $2.99 as a one-time App Store purchase. You can redownload it from Purchased on both devices when they use the same purchasing account. The Mac, Windows, Android and Linux versions are free. Check the App Store listing for iPad system requirements. Your iCloud account may differ from your App Store purchasing account, so check the account used for Media & Purchases. After installation, check the device’s configuration and connection permissions; downloading the app does not sync its settings.

Choose by device

Installation and first launch

Choose the right operating system and chip version before handling first-launch prompts. Find installation links and permission steps on the Get the App page.

Can I use Shadowrocket on desktop or Android? Where can I get the Linux version?

Yes. The iPhone and iPad app costs $2.99 as a one-time App Store purchase; the Mac, Windows, Android and Linux versions are free. Choose your device on this site’s Get the App page. Desktop and Android installers are available through this site’s /dl/shadowrocket/ path. Windows has a 64-bit installer, Android has an arm64 package, and Linux offers deb, rpm and AppImage packages. If your system blocks the first installation, follow the installation permission steps on the download page and verify the source before proceeding.

Which Shadowrocket version should I choose for my Mac: Apple silicon or Intel?

On your Mac, 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 on your browser or the computer’s appearance. The download page has a separate dmg button for each version. Quit Shadowrocket before installing. If macOS can’t verify the developer on first launch, confirm the download source, then go to System Settings → Privacy & Security and choose Open Anyway.

Windows or Mac says the app may be risky or can’t be opened. What should I do?

First, make sure the file came from this site’s download page. If Windows SmartScreen blocks it, verify the file, then choose More info → Run anyway. Follow your administrator’s instructions on a managed device. If Mac says it can’t verify the developer, go to System Settings → Privacy & Security and choose Open Anyway. If macOS says the app is damaged, confirm it’s in Applications and came from the correct source, then run xattr -cr /Applications/Shadowrocket.app in Terminal and try again. Don’t disable system-wide security just to open one app.

What if Android or Linux blocks the first installation?

On Android, first confirm the package came from this site. Follow the system prompts to allow the browser or file manager you’re using to install unknown apps. You can turn off this permission after installation. On Linux, choose deb or rpm for your distribution and use its package manager to handle dependencies. For an AppImage, allow it to run as a program in its file properties, or run chmod +x on the file. If it still won’t launch, check the specific error in a terminal and follow the download page’s guidance. Don’t keep trying packages that aren’t compatible with your system.

The interface is in English. Which settings should I learn first?

Start by learning where things are; you don’t need to change every setting. Home shows servers and connection status. Add Server lets you enter details for an existing server. Config manages configuration files, and Settings contains app settings. Global Routing determines how requests are handled—by the configuration, through a proxy, or directly. On Demand triggers connections under specified conditions. This guide keeps the interface labels in English so you can match them to the app. Layouts may differ across systems and app versions. If you can’t find a control, check the quick reference, then follow the setup guide to configure the app.

Related guides: Allowing installation in system settings · Choosing a Mac installer · Quick reference

Use information you already have

Subscription and server imports

First identify whether you have a server subscription, a single-server share link or a configuration file. Importing only adds the details; check the fields and test the connection after saving.

Where do I import an existing subscription link?

First check that you have a server subscription, not a single-server share link or a rules configuration file. To add a server subscription, go to Home → Add Server, choose the appropriate Subscribe type and enter the full URL. Use Subscribe in Config for configuration files; it’s separate from the server list. After saving, check that the expected entries appear, then select a server to test. Subscription links come from a service you already use and contain access credentials. Don’t post the full URL in a public forum.

Subscription import failed or the list is empty. How can I find the cause?

Check that the URL was copied in full, especially its trailing parameters, line breaks, spaces and punctuation. Make sure the import option matches the type of information you have. Then check that your current network can reach the subscription URL and that the link is still valid in your provider account. Don’t paste it into a public online converter or testing site. If the download succeeds but no entries appear, the response may be a login page, an error or an unsupported format; ask the original provider to confirm the format. Keep any working entries rather than clearing all settings to retry.

When should I use Scan QR Code, the clipboard or Add Server?

For a single server share link, import it from the clipboard. If the details are provided as a QR code, use Scan QR Code and grant camera access only when scanning. If you have individual fields, enter them manually through Add Server. Whichever method you use, check Type, Server, Port and authentication fields after importing; a successful scan doesn’t guarantee a valid configuration. A QR code may contain an ordinary web address, so check what it encodes first. Don’t share screenshots of QR codes containing passwords or full server links.

Can updating a subscription change my existing servers?

It can. An update fetches the content at the original subscription URL, so server names, addresses, counts or authentication details may change. Manually edited fields aren’t guaranteed to remain. Before updating, note your current selection and any important custom settings. Then update the relevant subscription, check the entries and selected server, and test again. Updating a subscription is different from updating rules in Config. If you only want to refresh rules, make sure you’re updating a configuration file, not a server subscription.

When adding a server manually, how do I check types like Trojan and VLESS and their fields?

Match Type to the server details you already have. Don’t substitute Trojan, VLESS, VMess or Shadowsocks for one another just because their fields look similar. Check Server, Port, Password or UUID, and any required TLS, SNI or transport settings. Fields differ by type. Server and SNI aren’t necessarily the same, so follow the source details. Remove extra spaces before saving. If the connection fails, change only one field at a time, and only when you have a reason. See the protocol guide for details.

Related guides: Importing details and making your first connection · Protocols and parameter details

Start with the underlying network

Routing rules and connection troubleshooting

Connection status, server availability and rule matching are separate issues. Keep the time and error message from one failed request; it’s easier to find the cause than by changing several settings at once.

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

Config uses the rules in the current configuration file to route requests. Before regular use, check that the rules and policy names are valid. Proxy routes requests handled by the client through the selected proxy and can help with temporary comparisons during troubleshooting. Direct connects without a proxy and can serve as a baseline network check. These are routing modes, not separate sets of server details. After making a change, test the same destination and check the policy result in the logs. When you’re done, restore your intended mode rather than leaving a temporary test setting in place.

The connection switch won’t turn on, or turns off right away. What should I check first?

First, select a complete, valid server entry. When prompted by the system, allow the VPN configuration to be added and complete any required verification. If you previously denied permission, try connecting again and check System Settings for conflicting or managed VPN configurations. Temporarily stop other tasks using the VPN, then quit and reopen the app. If it still turns off immediately, check the first error in the connection log to distinguish an authorization, configuration parsing or server detail issue. Don’t remove managed configurations from a device controlled by your organization.

Shadowrocket says it’s connected, but I can’t access the internet. What should I check, and in what order?

Disconnect Shadowrocket first and confirm that your Wi-Fi or cellular connection can reach regular websites. If the underlying connection isn’t working, resolve any network sign-in or signal issues before proceeding. Reconnect and check the selected server, Global Routing and current Config. Run Connectivity Test as an initial check, then review the actual request logs. If access by IP address works but access by domain name doesn’t, check DNS. If only some destinations fail, check rule matches and policy references. A VPN connected status confirms that a tunnel was established; it doesn’t verify end-to-end access.

Rules aren’t working as expected. Should I change DOMAIN-SUFFIX or FINAL?

First, check that Global Routing is set to Config and that you’re using the configuration file you edited. Rules are generally evaluated in order. A broad rule earlier in the list may prevent a later DOMAIN-SUFFIX rule from matching. FINAL handles requests that haven’t matched earlier rules, so review it in the context of the full ruleset. Check that the target policy exists and that PROXY, DIRECT or any custom policy name is spelled correctly. Use request logs to identify the actual match before editing, then save and make a new request. Existing long-lived connections may not reflect the new rules immediately.

Shadowrocket seems to use more battery. How should I adjust On Demand?

Compare actual battery use over the same period in your system’s battery settings. Consider continuous downloads, weak signal, frequent reconnects and background activity separately. Check the logs for repeated connection failures, and cut unnecessary frequent tests or extended detailed logging. On Demand triggers connections based on network conditions; it isn’t a fixed battery-saving switch. Check whether its conditions are causing repeated connections. When testing, keep the network, protocol and activity consistent, and change one setting at a time. The VPN icon in the status bar alone can’t identify what’s using the battery.

Continue reading: Global Routing explained · On Demand explained · Back to purchase questions