At a glance

For users who already have a subscription from their service provider and need to refresh the server list in Home. Start with a manual update to verify the link, then enable automatic updates when the app opens. If an update fails, check the link, response, network, and device time in turn. Finally, verify “subscription updated” and “server connected” separately—they are not the same result.

1. Understand the Difference Between Subscription Updates, Config Updates, and Connections

Shadowrocket is a paid client for Apple platforms, available exclusively on the App Store. The developer is Shadow Launch Technology Limited. It is primarily used on iPhone and iPad; compatibility with other Apple devices, system requirements, and purchase eligibility are as listed on the App Store page. This guide explains how the app reads a subscription you already have; it does not cover choosing a service.

Subscribe in Home stores a remote subscription URL. When you update it, the app requests that URL, parses the response, and refreshes the associated server group. Configuration files in Config handle rules and policies. Refreshing a subscription in Home does not download a Config file again or change Global Routing.

Home
Check Subscribe and Server Groups
Config
Review Configuration Files and Rules
Settings
Manage Subscription Update Preferences

First, identify what needs updating

If server addresses or the server count have changed, check the subscription in Home. If you need to adjust website routing, check Config and Global Routing. Do not change DOMAIN-SUFFIX or FINAL rules to troubleshoot a failed subscription request.

2. Manual Update: Refresh an Existing Subscription in Home

Before troubleshooting automatic updates, run a manual update so you can observe the result. If you have not added a subscription yet, tap “+” in the top-right corner of Home to open Add Server, set Type to Subscribe, enter your own subscription URL, and save. Existing subscriptions do not need to be added again each time. Adding the same subscription repeatedly can create several similarly named groups and make it harder to tell which one you are using.

  1. Check the subscription

    Open Home and find the relevant subscription group. To check its address, open the Subscribe entry and review its details. Make sure the URL matches the one shown in your service account—not a login page or an information page.

  2. Pull to refresh

    Pull down on the server list in Home to refresh the subscription. If you have multiple subscriptions, check which group the result applies to. If an error appears, note the full message; the end of the refresh animation alone does not mean the update succeeded.

  3. Check the result

    When the request finishes, check the server names and count in the relevant group. If the service has not changed its content, a successful update may not visibly change the list. If you expected changes that did not appear, check the subscription URL and the content returned by the service.

  4. Test the connection

    Once you have confirmed the list loads correctly, select a server you are authorized to use and test the connection. A successful update only confirms that the subscription content could be retrieved and parsed; it does not mean every server can connect.

Refreshing may replace entries in a group. If the selected entry was removed, renamed, or had its settings changed, check your selection again. Do not treat manually edited subscription entries as a reliable backup: a later update may overwrite local changes with the content returned by the remote service.

3. Update on Open: Where to Find the Setting and When It Runs

Go to Settings → Subscribe, find Update On Open, and turn it on to update subscriptions automatically when you open the app. App versions or interface languages may change capitalization or layout. Look for the setting in Subscribe that updates subscriptions when the app opens; do not look for it under On Demand.

Update On Open does not mean the app will continue fetching subscriptions at fixed intervals while closed, and it does not guarantee an update when the device is offline. The request still depends on domain resolution, establishing a connection, TLS validation, and parsing the response. A failure at any step may leave the old list in place or show an update error.

4. Invalid Links and Unsupported Formats: Check the Response First

Subscription URLs often contain parameters that identify access permissions. An update can fail if you omit the query string when copying, add a trailing space, paste a line break, or keep using a URL that has been reset. The example below shows URL structure only; it cannot be used to retrieve content.

https://example.com/sub?token=xxxx

The parameters after ? are part of the URL; do not keep only the domain and path. Subscription URLs contain credentials, so do not post them in public comments, screenshots, or online parsing tools. If you need help, share only the URL structure with its token hidden, the error text, and the conditions under which it occurred.

What you seeWhat it means and what to do next
HTTP 401 or 403The request was unauthorized or denied. Check your service account status, whether the link was reset, and any access restrictions. The status code alone does not identify the exact cause.
HTTP 404 or 410The resource was not found or has been removed. Check the current subscription URL in your service account; do not guess a new path.
HTTP 200, but the response is HTMLA successful request does not mean the subscription is valid. The response may be a login page, verification page, or error message that cannot be parsed as a server list.
Empty response or unrecognized dataCheck whether the selected subscription output format is compatible with Shadowrocket, and ask your service provider what content the URL actually returns.

If the app says it cannot parse the response, first confirm that you received a server subscription rather than a full configuration file in another format. Do not identify a format by its file extension alone or change the content to a different extension at random. Different protocol entries require different settings; missing authentication details or transport settings can prevent a connection even if the server name appears.

5. Network Timeouts and Device Time: Troubleshoot the Error Message

An error may come from the app or from Apple’s networking framework. These are common system error messages; the displayed language and surrounding text may vary. Note the original message or error code and check each cause in turn instead of assuming every failure means the subscription has expired.

Error: The request timed out.

Cause: The request did not finish within the allowed time. The current network, connection path, or a slow response from the remote service may be involved.

Fix: Confirm that general internet access is working, then try a manual refresh once on a trusted Wi-Fi network and once on cellular. If it fails only on one network, check that network’s restrictions first.

Error: A server with the specified hostname could not be found.

Cause: The subscription domain could not be resolved. Common causes include a misspelled or expired domain, or a DNS resolution issue on the current network.

Fix: Check that the hostname in the URL is complete, then retry on an available network. Do not replace an HTTPS hostname with a guessed IP address.

Error: The Internet connection appears to be offline.

Cause: The system detected no available internet connection, or the app could not use the current network.

Fix: Check whether Wi-Fi requires you to sign in to a network, and confirm in system Settings that Shadowrocket can use cellular data. Then return to Home and refresh.

Error: The certificate for this server is invalid.

Cause: TLS certificate validation failed. Possible causes include an incorrect device time, an expired certificate, a hostname mismatch, or network interference.

Fix: Check the system date and time zone first. If the error persists with the correct time, contact your service provider. Do not bypass the issue by turning off certificate validation.

On iPhone or iPad, go to system Settings → General → Date & Time and check Set Automatically. Make sure the date, time, and time zone are correct. Certificates have validity periods, so a significantly incorrect device clock can make a valid certificate appear not yet valid or expired. Correct the time, then try a manual update again.

6. If the Update Succeeds but You Still Cannot Connect: Check Each Separately

A successful subscription update and a working connection are two separate checks. The subscription URL may be reachable while a server in the list is not; a server may be reachable while the current routing mode does not use it as expected. First confirm the selected server, then check Global Routing and Config. Do not immediately delete all subscriptions.

For example, if a configuration contains DOMAIN-SUFFIX,example.com,PROXY followed by FINAL,DIRECT, whether a domain matches a rule affects how its request is routed. Refreshing a subscription does not rewrite these rules. When testing a connection, check that the destination actually matches the expected policy rather than just looking for a new server name in Home.

Bottom line: Keep the error details before deciding to recreate the subscription

First note the update message, time of failure, network used, and affected group, then check the URL and response. Recreate a subscription only if you confirm that its saved entry is incorrect or the URL needs replacing. Reinstalling the app usually will not fix a remote access denial, an invalid link, or a certificate error.

7. Share Troubleshooting Details and Maintain Your Setup

When contacting your service provider, describe a reproducible issue rather than simply saying “updates don’t work.” Useful details distinguish request failures from connection failures while keeping subscription credentials private. Keep any essential information from the old group, and avoid clearing the list, resetting settings, and deleting configuration files all at once before the cause is known.

For everyday use, you can leave Update On Open enabled and manually refresh after your service provider announces changes to URLs or server details. Automatic updates reduce repeated manual steps, but do not guarantee availability. Check the update result for the relevant group, your current selection, and the actual connection test.