Shadowrocket Subscription Not Updating? Manual Refresh, Update On Open, and Troubleshooting

Learn how to refresh subscriptions manually and enable Update On Open in Settings. Troubleshoot failures by checking the URL, network connection, and subscription format.

At a glance

For users who already have a provider and subscription and need to maintain their Shadowrocket list. Keep existing entries, refresh once manually from Home, then check the automatic update option in Settings. If it fails, check the URL, network request, and response format in that order. After a successful update, test the connection separately—refreshing the list does not confirm that a server is reachable.

First, tell whether the subscription update failed or the connection failed

Shadowrocket subscription updates fetch server information from an address you provide and organize it in the Home list. This does not update the app itself or connect to a server. If old entries are still visible, that only means data is saved locally; it does not confirm that the latest refresh succeeded.

Note where the failure occurs: does an alert appear as soon as you refresh, does the request time out, or does it report success without adding entries? If the update completed but a server will not connect, troubleshoot it with a connection test. Do not repeatedly delete and re-add the subscription.

Read the subscription URL Request subscription content Parse entries Update the local list Test the connection separately

This process explains two common scenarios: old servers may still connect even though the subscription URL has expired; or the subscription may refresh successfully while one of its servers is temporarily unavailable. These are not contradictory. The first issue occurs while fetching the list; the second occurs after the list is in use.

3 checks
Troubleshooting order: URL, network, format
2 things
Verify subscription refresh and server connectivity separately
443
Default port for an HTTPS URL when no port is specified

Manual refresh: start from Home and keep the existing subscription

Start with a manual refresh so you can see the full result. Do not make “add it again” your first step: importing the same URL more than once can create duplicate groups in Home and make the results harder to interpret. If you need to re-enter the URL, check and edit the existing subscription first.

  1. Find the subscription

    Go to Home and locate the subscription group you want to update. Note its name and current entry count so you do not mistake a server added individually for a subscription.

  2. Check the URL

    Open the subscription’s edit screen and make sure its URL matches the one from your provider. To import a subscription for the first time, go to Home → “+” in the top-right corner → Type → Subscribe. There is no need to create another one if it already exists.

  3. Pull to refresh

    Return to Home, pull down at the top of the list, and wait for the request to finish. If you have multiple subscriptions, check each group separately; success for one does not mean they all updated.

  4. Check the result

    Note the success or failure message, then check the target group. An unchanged entry count may simply mean the remote list has not changed. Use the update message to confirm whether the request and parsing completed.

Update On Open: configure it in Settings

Automatic updates can reduce manual work, but they will not fix an expired URL. First confirm that a manual refresh works, then enable Update On Open. Go to Settings → Subscribe, find Update On Open, and turn it on. Labels and their placement may change with app updates; check what appears in your app.

This option triggers a subscription update when you open the app. It is not a scheduled refresh that runs continuously in the background. If you cannot tell whether an update ran after returning to the app, go to Home, refresh manually, and check the result. This is more conclusive than repeatedly toggling the setting.

If automatic updates fail but a manual refresh works, compare the network and connection state during each attempt. The app may have opened while the device was switching between Wi-Fi and cellular. One difference does not prove the setting is broken; test again on the same network.

Step 1: Check for an expired subscription URL or changed access

First, ask your provider to confirm that the subscription URL is still valid. Do not substitute a website login URL for the subscription URL, and do not remove query parameters from memory. A long URL may contain an account identifier, access credentials, and an output format. Removing even one parameter can change the response.

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

The example above cannot be used for an actual import. When troubleshooting, compare the URL on your device with the source, character by character. Check the protocol, domain, path, parameters after the question mark, and any spaces or line breaks introduced when copying. Do not share the real URL publicly or enter it into an unfamiliar conversion tool.

Being able to open the domain’s home page in a browser does not mean the subscription endpoint works. The home page and subscription path may use different access checks, and a redirect to a login page does not provide a server list. Check the response from the complete subscription URL, not just whether the domain is reachable.

Step 2: Check the network and request timeouts

After confirming that the URL is valid, check whether your device can reliably reach the host serving the subscription. Complete Wi-Fi sign-in if required, confirm that regular web pages load, then compare Wi-Fi with cellular. Change only one condition at a time so you can compare results.

Error: Failed to load subscription

What it means and what to do: This message means the subscription did not load successfully; by itself, it does not identify whether the cause is the URL, network, or content parsing. Check the URL and access permissions first, then try a manual refresh on another network and keep the detailed error message.

Error: The request timed out.

What it means and what to do: The request did not finish within the allowed time. The network route or the subscription service may be responsible. Confirm that you are online, try Wi-Fi or cellular, and wait rather than refreshing repeatedly.

Error: Could not connect to the server.

What it means and what to do: The request could not connect to the target host. The URL, port, or server availability may be involved. Check the host and any explicitly specified port in the URL, then ask your provider to check the endpoint.

These are examples of messages you might see while troubleshooting. The wording may differ depending on the system language and where the error comes from. Do not ignore the error details just because they differ from one of these examples. If you see a certificate warning, check the device’s date and time and ask your provider to inspect the certificate. Do not bypass the issue by disabling certificate verification.

  1. In system settings, confirm that the current network is connected. If Wi-Fi requires web sign-in, complete it first.
  2. Note Shadowrocket’s current connection status and Global Routing selection, then refresh once without changing them.
  3. Switch only between Wi-Fi and cellular, then refresh the same subscription and compare the results.
  4. If you suspect the current connection is affecting the request, disconnect and test under controlled conditions. If On Demand is enabled, check whether it starts the connection again.

Proxy, Direct, Config, and Scene under Global Routing are traffic-handling modes, not “fix subscription” buttons. Do not force a permanent change to how all traffic is handled just to refresh one URL, and do not add a DIRECT rule without verifying that it is needed. The route used for a subscription request depends on the current connection and settings.

Step 3: Check the response content and subscription format

Even when the network request completes, the response may not contain importable entries. An HTTP 200 status means the request succeeded at the HTTP level, but the response body could be a login page, maintenance page, error message, or data the current import option cannot recognize. Changing networks again may not help.

Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard are protocol names; Subscribe is the subscription import type. Two services using the same protocol do not necessarily use the same subscription format. Protocols, subscription formats, and complete configuration structures are different things.

After updating: verify entries, then remove duplicates if needed

After a successful update, check the target group and test the connection using one of its entries. Connectivity Test can show reachability and latency under the test conditions, but it is not a bandwidth test. A single result does not prove that every website or service will work.

  1. Confirm the update: Check the target group name and whether its entries changed. If your provider has not changed the content, an unchanged count and set of names may be normal.
  2. Test a specific connection: Select an existing entry and run Connectivity Test, then open a page you need to access. Record the list refresh and access test as separate results.
  3. Check for duplicate sources: If you imported the same subscription more than once, first confirm which group has the correct URL, then remove the extra group. Do not identify duplicates by server display name alone.
  4. Keep a maintenance record: Note whether you changed the URL, network, or automatic update setting. If the same issue comes up again, you can start with the relevant step.

If it still fails, send your provider the network type, time of failure, full error message, and steps you have tried. Use their private support channel to check your subscription access, and hide credentials in any screenshots shared publicly. These details make it easier to determine whether the problem is the URL, endpoint response, or format than simply saying “it won’t update.”

Shadowrocket is a one-time-purchase, closed-source commercial app, primarily for iPhone and iPad. It is available exclusively from the App Store. Check the App Store listing for system requirements. Buying the app ≠ buying a server plan; purchasing the app does not include a server or subscription. This site explains how to manage a subscription you already have and does not provide, sell, or recommend servers or subscriptions.

Verify on the App Store →