This guide is for Shadowrocket users who already have a subscription from their own service provider. First, manually update a single subscription from Home and confirm that the link returns valid configuration. Then enable Update On Open. If an update fails, check network access, link permissions, and the returned content one by one. Updating the server list does not update Config or extend your service period.
1. Subscription Updates vs. Connectivity Tests
A subscription link is used to retrieve server configuration. When you update it, Shadowrocket requests content from that URL, parses the server settings, and updates the corresponding subscription group in Home. Whether the request succeeds depends on the subscription URL, your current network, and the content returned by the provider. Checking whether a server in the list can connect is a separate test.
A latency test is not a substitute for a subscription update. It checks existing server details and does not retrieve newly added or replacement servers from your provider. Conversely, an update can succeed while a server remains unavailable, your account quota is exhausted, or your service period has ended.
First, identify what you need to update. To update your provider's server list, use the subscription in Home. To update a rules file, check the source of the relevant configuration in Config. These may be maintained separately, so updating one does not confirm that the other is up to date.
2. Manually Update an Existing Subscription from Home
Start by keeping the current list; don't delete the subscription as your first step. Deleting and re-importing it means you'll need to select servers again, check the group, and restore settings. You may also lose old information that could help with troubleshooting. For your first attempt, update just one subscription so you can identify which link produced the result.
-
Find the subscription
Open Home and locate your subscription group. Check the group name and its existing servers so you don't mistake a server added individually for a subscription.
-
Open the actions menu
Open the actions menu for the subscription group in Home and select Update. You can try long-pressing the group heading. If the current interface reveals action buttons with a swipe, swipe left on the subscription group row and choose the update action. Don't select Delete on an individual server row.
-
Wait for it to finish
Keep the app in the foreground until the request completes. Don't trigger multiple updates in a row. If an error appears, note the full message and when it occurred before moving on to the next check.
-
Check the list
Check that the group is still there, its entries expand, and any servers your provider specifically announced are present. If nothing changed, first confirm that the provider actually supplied new content.
-
Test the connection again
Confirm that the selected server is still valid, then connect and visit the same test page. Record whether the update succeeded separately from whether the server is available; these are two different results.
3. Enable Update On Open
Complete one manual update before enabling automatic updates. This confirms that the subscription link works and helps avoid repeating the same error every time you open the app. Update On Open manages subscriptions; it is not a connection toggle or a routing mode.
-
Open Settings
Go to Settings → Subscribe and look for Update On Open. Follow the subscription settings shown in your installed version. Don't change rules in Config as a substitute for this toggle.
-
Enable the option
Turn on Update On Open. If the page also offers conditions such as an update interval, review those as well. Whether a request is made depends on those conditions.
-
Return and check
When the network is available, reopen the app and check the update status in Home. To verify a specific subscription right away, you can still select Update manually rather than waiting for an automatic trigger.
Don't assume Update On Open runs as a fixed-interval background task. Leaving the app, locking the screen, or seeing a system VPN status does not prove that subscriptions keep updating in the background. Likewise, returning to the foreground doesn't by itself confirm that a request was completed.
- Update On Open: Controls subscription updates when you open the app and remains subject to network availability and any related update conditions.
- Settings → On Demand: Configures on-demand connections; it does not replace the server list in a subscription.
- Global Routing: Includes options such as Proxy, Direct, Config, and Scene to control how traffic is handled. It does not set the subscription refresh interval.
4. Tell Link Problems from Network Problems
When an update fails, save the error message first, then identify where the failure occurred. The examples below include possible request errors and HTTP status codes. The exact message can vary with the system language, network layer, and provider response. Don't repeatedly delete and re-import the same link just to dismiss the error.
Error: The request timed out.
Cause and fix: The request did not complete within the allowed time. The network may be interrupted, the address may be unreachable, or the remote server may be responding slowly. First, check that an ordinary webpage loads, then retry the same subscription on another trusted network and compare the results.
Error: Could not connect to the server.
Cause and fix: The connection to the target server failed, possibly because of the remote service, network restrictions, or the connection route. Check that the subscription domain is entered in full, then ask your provider whether the subscription endpoint is currently available.
Error: HTTP 401 Unauthorized
Cause and fix: The remote server rejected the credentials for this request. Check your provider account's subscription permissions and the current link. Confirm whether the link has been reset; don't guess or construct a token yourself.
Error: HTTP 403 Forbidden
Cause and fix: The server received the request but denied access. This may involve permissions, the request's origin, or a security policy. Note when it happened and which network you used, then ask your provider to check the restrictions. A 403 alone does not prove that your subscription has expired.
If a link has been reset, the old one may no longer work. Copy the current subscription URL from your provider account, replace the URL for the relevant subscription, and update it manually. Check for leading or trailing spaces, line breaks, and complete query parameters. Don't copy only the domain.
5. What to Check When the Request Succeeds but the List Looks Wrong
A successful network request doesn't guarantee that the response is a valid subscription. The remote server may return a login page, verification page, or account status notice. Even with an HTTP 200 status, the response body may be HTML rather than server configuration that Shadowrocket can parse. Switching servers usually won't fix a parsing problem.
| What you see | Check first | Next step |
|---|---|---|
| The update finishes, but the entries haven't changed | Whether the remote content actually changed | Compare the specific entries mentioned in your provider's notice. Don't judge the result by the number of entries. |
| A parsing error appears, or no usable entries are found | Whether the URL is a subscription endpoint and whether it returns a webpage | Copy the Shadowrocket-compatible subscription URL again from your account. |
| The list looks normal, but the connection still fails | The selected server, service period, and account quota | Troubleshoot the connection separately from the subscription request, and ask your provider to check the server's status. |
| The update fails on one network but works on another | Network authentication, DNS resolution, and access restrictions | Keep the same subscription and settings while comparing networks. Don't change several variables at once. |
A protocol name does not guarantee that an update succeeded. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard describe different connection configurations. The subscription request retrieves those configurations; it does not automatically fix an incorrect port, password, UUID, or TLS setting. If the provider's content itself is wrong, check with the source first.
- On public Wi-Fi, complete any required sign-in or network confirmation before updating the subscription.
- If you suspect a DNS issue, first check whether the subscription domain resolves. Don't replace the domain with an IP address: the HTTPS certificate and server routing may depend on the original domain.
- If you see a certificate verification error, check the device's date and time and your network environment. Disabling certificate verification is not a general-purpose fix.
- Don't try to fix an expired link by adding
DOMAIN-SUFFIXor changingFINAL; rules can't restore remote access.
6. What to Record After an Update
Change only one condition at a time. Test the same link on different networks first, then check link permissions, and finally inspect the returned content. If you replace the subscription, change DNS, switch Global Routing, and delete the old configuration all at once, you won't know which change fixed the issue.
- Record: Keep the subscription group name, but don't record the full token or send server passwords in a troubleshooting report.
- Record the environment: Note whether you used Wi-Fi or cellular data and whether ordinary webpages were accessible.
- Record the result: Distinguish update errors, list changes, and connection errors. Keep the full error message and the time it occurred.
- Record the change: Note which single setting you changed. If it doesn't help, restore the original value before testing the next item.
Shadowrocket is a closed-source commercial app for Apple platforms, primarily iPhone and iPad, and is available exclusively from the App Store. Check the developer, Shadow Launch Technology Limited, and app ID 932747118. Refer to the App Store listing for system requirements. The app's one-time purchase is separate from a service plan and does not replace subscription authorization from your existing provider.
For connection troubleshooting, continue with the site's Troubleshooting. To distinguish Subscribe, Config, and Global Routing, see the glossary. First confirm that a manual update completes successfully, then enable Update On Open to make future troubleshooting easier.