Jul 29, 2026 · Getting Started · About 8 min

Shadowrocket Subscription Update: Manual Refresh, Update on Open & Troubleshooting

Learn how to refresh Shadowrocket subscriptions manually, update them when the app opens, and troubleshoot common update errors.

At a glance

For users who have already imported their own subscription into Shadowrocket. Start by refreshing manually from Home to confirm the URL returns a valid list. Then, if needed, enable Update on Open under Settings → Subscribe. If only one subscription has a problem, update that group on its own. When an update fails, distinguish between an incomplete request, a server refusing access, and a response that cannot be parsed. Don’t delete entries that still work.

What a subscription update changes

A subscription stores the source of a list. When you update it, Shadowrocket requests that URL, reads the response, and updates the server entries in the corresponding group. If the server changes a server name, address, port, or connection parameters, the new list may differ from the old one. Updating a subscription does not upgrade the app or extend the validity of a service you already have.

Read subscription URL Request list content Parse connection parameters Update subscription group Check connection

Server subscriptions in Home and rule configurations in Config are different types of content. Refreshing a server subscription does not update Config or automatically change Global Routing. Before troubleshooting, confirm which type of URL you’re working with so you don’t enter a rule file URL in a server subscription field.

Manual refresh: Run a full update first

Manual refresh is useful for checking the list after importing it, syncing changes announced by your service provider, or checking an unclear automatic update result. Keep Shadowrocket in the foreground and wait for the update to finish. Repeatedly pulling down won’t fix an invalid URL and may trigger the server’s rate limit.

  1. Find the group

    Go to Home and find the subscription group you imported. If you haven’t added one yet, tap “+” in the upper-right corner, select Subscribe under Type, enter your full subscription URL, and save it.

  2. Pull to refresh

    Pull down on the Home list to refresh the subscription. Check the update status and wait for the request and parsing to finish before leaving the app.

  3. Check the list

    Check that the group still contains valid entries, and verify the expected name or count changes. An unchanged list may simply mean the server content hasn’t changed; that alone doesn’t indicate a failure.

  4. Test the connection

    Select the server you want to use and confirm it’s selected on Home, then run Connectivity Test. If the refresh succeeded but the connection failed, check that server’s parameters and connection path.

Update on Open: Enable automatic updates when opening the app

Check Update on Open under Settings → Subscribe. When enabled, the app attempts to update subscriptions at the relevant time when it opens. This isn’t continuous background polling, and it doesn’t mean the app will make requests at fixed intervals while closed. The exact trigger and interface may vary by app version.

First, complete one successful manual refresh, then enable this option. If an issue comes up the next time you open the app, you can tell whether the automatic trigger didn’t work as expected or the subscription itself can no longer be updated. The app still needs a working network connection when it opens; automatic updates can’t bypass server authentication, expiration, or request limits.

If the network isn’t ready when you open the app—for example, just after switching Wi-Fi or while signing in to a network—the update request may fail before connectivity is restored. Finish connecting, then return to Home and refresh manually to check. There’s no need to import all your subscriptions again.

Update subscriptions one at a time to isolate the issue

If you have multiple subscriptions, a successful update for one group doesn’t mean the others updated too. Updating them individually helps pinpoint a problem URL and prevents one server’s issue from being mistaken for an app-wide connectivity problem. This assumes you already have subscriptions; this site does not provide, sell, or recommend servers or subscriptions.

  1. On Home, find the subscription group you want to check. Note its name and current number of entries, and make sure it isn’t another group with the same name.
  2. Open the action menu for that subscription group and choose Update to refresh this subscription. The menu location may vary in the current app interface. Be careful not to select the delete option.
  3. Wait for the result and note the full error message. If the update succeeds, check the group’s contents. If it fails, keep the group and continue troubleshooting.
  4. On the same network, update another subscription you already have for comparison. If only one fails, first check that URL and its server status. If several fail, check the network path they have in common.

Subscription update errors: Check the error and response

An error can occur during DNS resolution, connection setup, the server response, or content parsing. First note when it happened, which network you were using, the target group, and the exact message. Then decide what to check next. The English text below may appear as a network request error or HTTP status. The exact wording depends on the app and server, and the same message won’t necessarily appear every time.

Error: The request timed out.

Cause: The request didn’t complete within the allowed time. The network path or server response may be the issue. Fix: Confirm your network is working, switch networks and retry the subscription on its own, then check Update via Proxy based on your existing connection setup.

Error: 401 Unauthorized

Cause: The server didn’t accept the credentials in the request. Fix: Check the subscription URL in your own service account, keep all query parameters intact, and confirm whether the old token has been reset.

Error: 403 Forbidden

Cause: The server refused the request, possibly because of account status or access restrictions. Fix: Ask your service provider to check your subscription permissions and access conditions. Don’t assume this status means the app is configured incorrectly.

Error: 429 Too Many Requests

Cause: The request triggered the server’s rate limit. Fix: Stop refreshing repeatedly and wait as instructed by the server before trying again. You can temporarily turn off Update on Open while troubleshooting to reduce repeat requests.

Request succeeded, but the list is empty

A successful HTTP request only means a response was received; it doesn’t guarantee that the response contains valid server entries. The URL may return an account login page, an error page, or empty content. Missing query parameters can also make the server return a different page than expected. Being able to open a web page doesn’t prove that a subscription is valid.

Update via Proxy: Change the request path only when needed

Update via Proxy under Settings → Subscribe controls whether subscription updates use a proxy connection. It addresses a different issue from Update on Open: the former controls how update requests are sent, while the latter controls when the app attempts an update. Using a proxy for updates won’t fix an invalid token or turn a login page into a server list.

Change one variable at a time. For example, keep the subscription URL unchanged and retry on another network first. Then check the proxy update setting. This makes it easier to see what affected the result and restore the last working configuration.

FAQ: Update frequency and connection checks

Do I still need to refresh manually if automatic updates are enabled?

You don’t need to refresh repeatedly during normal use. If your service provider announces a change, the network isn’t ready when you open the app, or you want to check a group’s status, refresh once from Home and wait for the result.

The update succeeded. Why didn’t the server count increase?

An update syncs the current server content; it doesn’t guarantee more entries. Check the names, addresses, and ports of entries that were expected to change. If the server content hasn’t changed, the count staying the same is expected.

I can’t connect after refreshing. Should I add the subscription again?

First, check the selected server on Home and run Connectivity Test. If the test fails, check that entry’s connection parameters and the status of your existing service. If the test succeeds but access to a specific destination still fails, check Global Routing and Config. Don’t delete the subscription right away.

Can I refresh automatically every few seconds?

Update on Open isn’t a timer that runs every few seconds. Update when needed; frequent requests may trigger a 429 response. If the content hasn’t changed, repeatedly refreshing won’t keep an established connection active.

Does buying Shadowrocket include a subscription?

Buying the app doesn’t include a service plan. Shadowrocket is a paid app for Apple platforms, available exclusively from the App Store. Import a subscription for a service you already have; buying the app doesn’t automatically add a server list.

Download on the App StoreVerify the official app details first