August 29, 2026 · Getting Started · About 8 minutes

Shadowrocket Subscription Update Guide: Manual Refresh, Update on Open, and Troubleshooting

Learn how to update subscriptions manually or automatically when opening Shadowrocket, plus how to troubleshoot expired links, network issues, and unrecognized formats.

At a glance

This guide is for users who have already imported their own subscription into Shadowrocket. Follow these steps in order: confirm which subscription you’re updating, refresh it manually, enable Update on Open, then troubleshoot based on the response. Distinguish a subscription list retrieval failure from a connection failure, and verify the result with a manual update.

What subscription updates affect and what you need first

Shadowrocket is a paid Apple-platform app available exclusively from the App Store. Its developer is Shadow Launch Technology Limited, and its app ID is 932747118. It is a one-time purchase; check the App Store listing for system requirements and purchase details. Buying the app does not include a service plan. This guide assumes you already have your own provider and subscription.

A subscription update requests the saved subscription URL again and reads the node information in the response. It does not update the app itself or the rule configuration in Config. Check subscription groups in Home, individually added nodes, and the configuration file selected in Config separately. Refreshing one list does not mean all content has been synced.

Read the subscription URL Request the subscription service Receive the response Parse node fields Refresh the subscription group

Before refreshing, confirm which group you’re updating and note the currently selected node. After an update, a node may be renamed, removed, or have its settings changed; if the list changes significantly, select a node again. Keep a copy of your subscription URL, but never post the full URL publicly. Query-string tokens often act as access credentials.

Manual updates: verify one group, then refresh the list

Manual updates are useful for checking content after importing a subscription, syncing nodes after your provider announces changes, and retesting after an automatic update fails. Start with one subscription group to narrow the issue down to its URL. If you refresh multiple groups, verify each result separately; success for one group does not mean they all updated successfully.

  1. Open Home, find the subscription group you want to update, and note its name and current node count.
  2. Long-press the subscription group name, select Update from the action menu, and wait for the request to finish. Make sure you’re acting on the group, not an individual node.
  3. To refresh the subscription list, pull down on the Home list to trigger an update. If you have multiple subscriptions, check the result for each group.
  4. After the update, expand the target group. Check that the expected nodes appear, note any name changes, and confirm which node is selected.
  5. If an error appears, save the full message and the time it occurred. Then check the URL, network path, and response format below. Avoid tapping Update repeatedly.

An unchanged node count doesn’t mean the update failed; the server may have returned the same content. Conversely, a larger list doesn’t mean the nodes are usable. Verify in two steps: first confirm that the subscription request succeeded and its contents could be parsed, then select a node and test access. These are separate issues, so record them separately when troubleshooting.

Update on Open: where to find it and when it runs

Go to Settings → Subscribe, find Update on Open, and turn it on. This option triggers subscription updates when you open the app; it does not mean the app keeps polling at fixed intervals while closed. Background scheduling, network availability, and app state can all affect when a request is made.

  1. First, manually Update the target subscription in Home and confirm that its current URL returns content Shadowrocket can recognize.
  2. Go to Settings → Subscribe → Update on Open and turn on the option.
  3. Close and reopen the app, then check the subscription update result in Home. If there’s no result you can confirm, manually update the target group to verify.
  4. If the network isn’t ready when you open the app, try again once Wi-Fi or cellular data is available. Don’t assume the list synced if the automatic update didn’t complete.

Settings → On Demand controls when connections are triggered based on conditions; it is not the automatic subscription update setting. Configure them separately: enabling On Demand does not enable Update on Open, and disabling automatic subscription updates does not turn off On Demand.

Setting or actionWhat it affectsWhat it does not confirm
Home → UpdateNode content in the selected subscriptionA successful update does not mean a node connected successfully
Settings → Subscribe → Update on OpenUpdate trigger when opening the appNot a scheduled background task at fixed intervals
Settings → Subscribe → Update via ProxyProxy route used for subscription requestsDoes not fix expired tokens or an invalid format
Settings → On DemandConditions that trigger connections on demandDoes not replace subscription update settings

Recommendation: get manual updates working before enabling automatic updates

If a manual update still fails for the same URL, address the cause first. Toggling Update on Open repeatedly won’t change the server response or subscription content.

Subscription update failed: check the URL, network, and format in order

First distinguish between receiving no response and receiving a response that can’t be used. For no response, check the network, DNS, and request route. If a response arrives, check access permissions and content format. The cards below show common HTTP responses and system errors; actual messages may include more context, so keep the full text.

Response: 401 Unauthorized

Cause and fix: The subscription endpoint requires credentials that are missing, expired, or rejected. Check the current subscription URL in your own provider account, replace the entire URL, and try again. Don’t copy just the domain.

Response: 403 Forbidden

Cause and fix: The server rejected the request, possibly due to account status or access policies. Ask your provider why it was rejected. Switching networks alone may not resolve an access restriction.

Response: 404 Not Found

Cause and fix: The requested path does not exist, or the subscription endpoint has changed. Check that the URL hasn’t been truncated and includes the full path, then retrieve the current address from your account.

Error: The request timed out.

Cause and fix: The request did not complete before the timeout. A timeout alone doesn’t identify which part of the route failed. Try switching between Wi-Fi and cellular, then check whether Update via Proxy is appropriate in the next section.

If there’s no specific HTTP error but the list is empty after an update, check what the server actually returned. A login page, account notice, web verification page, or empty response cannot be parsed as a node subscription. Even 200 OK only means the HTTP request received a successful response; it doesn’t confirm the content uses a subscription format Shadowrocket can recognize.

Update via Proxy: avoid a circular dependency

If the subscription endpoint is unreachable directly but an existing node still connects, go to Settings → Subscribe → Update via Proxy, turn it on, and try a manual update again. First confirm that your current connection can access the network. Enabling the option without a working proxy connection won’t create a usable route.

A subscription link using https without an explicitly specified port typically connects over TCP 443. The port used by a node is determined by its configuration; the two are not necessarily related. A timeout on the subscription endpoint’s HTTPS request does not mean you need to change a node’s port. Don’t try to work around the error by disabling certificate verification.

  1. Select an existing, working node in Home, connect, and first check that ordinary websites load as expected.
  2. Check the current setting under Home → Global Routing. Proxy, Direct, Config, and Scene are different routing modes. Don’t change multiple options at once without noting their original settings.
  3. Turn on Settings → Subscribe → Update via Proxy, then run Update once for the subscription that failed. Record whether the result changes.
  4. If it still fails, try a different local network for comparison. If the response is 401 or 403, check credentials and permissions instead of continuing to change routing settings.

Verify the update and answers to common questions

After syncing the subscription, return to Home to check the selected node, then test the destination you need to access. With Config routing, how requests are handled also depends on the rules in the active configuration. Updating a subscription won’t switch Global Routing to another mode or guarantee that a particular domain uses a proxy route.

I enabled automatic updates. Why do I still see the same nodes after reopening the app?

The server may not have changed the node content, or the request may not have completed. Manually run Update for the target group in Home, check for errors, and verify the names of the nodes you expected to change. Don’t judge by the list count alone.

The subscription updated successfully. Why can’t I connect?

A successful update only confirms that the subscription was retrieved and parsed. Select a node again, check the connection toggle and Global Routing, then test network access separately. If the node settings or account status may be the problem, check with your provider.

Should Update via Proxy stay on all the time?

Choose based on whether the subscription endpoint is reachable. If direct access is reliable, use it. If only the proxy route works, make sure an existing connection is available before updating. Test manually before and after changing the setting, and keep the configuration that completes requests reliably.

Do I need to delete the old group after replacing the subscription URL?

First, use the edit option for the existing group to check and replace the URL, save it, then run Update. If importing separately creates a duplicate group, confirm the new group works before removing the old one, so you don’t also delete standalone nodes you need to keep.

For further troubleshooting, record five details: target group, time of the update, network in use, Update via Proxy status, and the complete error text. Change just one condition per attempt, then run a manual update once. This helps distinguish an invalid URL from a blocked route or an unexpected response format, and prevents a node connection problem from being mistaken for a subscription update failure.

Download Shadowrocket