This checklist is for users who already have their own subscription URL but can’t see any entries in Shadowrocket. First check whether the URL returns content, then determine whether the issue is the content format, the provider’s response, or your network. Keep the original URL and note what you observe at each step so you can tell what made a difference.
Step 1: Check the Subscribe URL
Bottom line: Check the URL before troubleshooting the list. Go to Home, find the Subscribe entry you added, open it for editing, and compare it character by character with the original details from your provider. If you haven’t added it yet, tap “+” in the top-right corner of Home, choose Subscribe under Type, enter your existing URL, and save. The entry point may vary slightly depending on the screen; use the fields shown in the app.
Subscription URLs often include a path and query parameters. For example, in https://example.com/sub?token=xxxx, ?token=xxxx is part of the URL. Missing the question mark, equals sign, or final character can make the server return different content. This example illustrates the URL structure and is not a working subscription. Don’t post your full URL in public forums: its parameters may be used to identify your access credentials.
Retrieve the original URL
Copy the complete URL again from your existing provider details, including
https://, the path, and any parameters after the question mark. Don’t try to reconstruct missing characters from memory.Check the first and last characters
Compare the URL with the Subscribe field and make sure there are no leading or trailing spaces, line breaks, or extra explanatory text. Copying a whole section from a webpage can also include its heading and punctuation.
Change one thing at a time
Save the corrected URL, update once, and check the list. If you also change the URL, network, and configuration, you won’t know which change made a difference.
Step 2: Tell a failed request from unparseable content
Bottom line: A URL opening successfully doesn’t mean it returns subscription content that Shadowrocket can read. An update involves at least three stages: requesting the URL, receiving a response, and parsing the entries. An empty list only tells you that no displayable entries were produced; it doesn’t identify which stage failed.
First, make sure you haven’t entered a webpage URL, account page, or explanatory text in Subscribe by mistake. When copying the link, watch for quotation marks, non-English punctuation, line breaks, or truncated parameters. Opening the same URL in Safari can help confirm whether it’s reachable, but a login page, error page, or ordinary webpage isn’t proof that the subscription format is valid. Don’t forward sensitive content displayed on the page.
Error: Failed to load subscription
Possible cause and next step: This loading message needs to be assessed against the actual response. The link may have expired, or the current network may be unable to retrieve its content. Check the original URL, then ask your provider whether it’s still accessible. The exact message may vary; refer to what the app displays at the time.
Symptom: The list is still empty after updating
Possible cause and next step: The request may have returned something other than subscription content, or content with no displayable entries. Make sure you haven’t entered an account webpage URL, and ask your provider to check the format and content returned by the link.
If the URL starts with https://, HTTPS typically uses port 443, but your provider may specify a different port; follow the original URL and don’t change it yourself. A visible 401 or 403 response usually points to an access issue, while 404 means the path wasn’t found. Even a 200 response still needs to be checked: it could be a login page rather than subscription content.
Step 3: Check the URL and content with your provider
Bottom line: Once you’ve confirmed the URL was entered correctly, check with whoever provided it. Shadowrocket reads the details you enter; the URL’s expiration, access permissions, and returned content depend on the service behind that address. Buying the app and having service details are separate matters. This article only covers how to check your own link.
When reviewing your own provider account details, check three things: you have the subscription URL intended for a client; its access permissions are still valid; and it returns the expected entries. If your provider has issued a new link, replace the old one with the current URL. Don’t just edit a segment that looks like a date or random code.
When contacting your provider, share when the issue occurred, whether the URL is accessible, any status code you observed, and a clear description such as “content loads but the list is empty” or “the request fails.” Don’t send your full token, password, or unredacted configuration. If your provider confirms the response is empty, ask them to check your account details; repeatedly refreshing in Home won’t create entries.
Next step: Confirm the response before changing app settings
If the URL returns a login page, error page, or empty content, address the URL and provider-side status first. Continue checking the imported entries only after confirming the expected subscription content was retrieved.
Step 4: Update once and check the result
Bottom line: After changing the URL, update once and wait for the operation to finish before comparing the list. Repeatedly triggering updates makes it hard to tell which request corresponds to which change, and doesn’t replace checking the returned content. Note what you see before making a change, then save the URL, update, and record what you see afterward.
- After saving a Subscribe entry, make sure the edit was saved before updating. Returning to Home doesn’t mean the content has been retrieved.
- If your provider has just changed the URL, use the complete current link they provided. A URL that worked before may no longer be valid.
- If entries appear after updating, first confirm they belong to your own account details, then consider running a connection test. Seeing entries and being able to connect are separate checks.
- If the list is still empty, note the network you used and any message shown by the app for comparison in the next step.
Don’t confuse Global Routing options like Proxy, Direct, Config, or Scene with whether a subscription parsed successfully. These control routing after a connection is established. If the subscription list is empty, start by checking the URL request and its response. If entries are present but access doesn’t behave as expected, then check routing and rule matches such as DOMAIN-SUFFIX, GEOIP, IP-CIDR, and FINAL.
Step 5: Try another network, then choose what to check next
Bottom line: If the same verified URL behaves differently on different networks, check the connection between your device and the subscription URL. Leave Subscribe unchanged and try updating once over Wi-Fi and once over cellular, if both are available. Record whether content is retrieved and whether the message changes. Don’t change the URL while switching networks, or the comparison won’t be meaningful.
Symptom: Updates work on one network but fail on another
Possible cause and next step: Each network takes a different path to the subscription URL. Make sure the failing network can access webpages, then check whether it can reach your subscription URL. Share the results from both networks with your provider.
Symptom: The list is empty on both networks
Possible cause and next step: Go back to checking the URL and response content. If you used the same URL on both networks, switching networks again is unlikely to explain why the response contains no entries.
Distinguish a failed subscription update from entries that are already present but can’t connect. The former happens while retrieving the details; the latter calls for checking the Type, Address, Port, and protocol-specific fields in your existing configuration. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different fields. Don’t change an existing entry’s protocol or port just to fix an empty list.
If you’ve checked the URL, response, and network but still can’t see the expected entries in Home, review your notes and make sure you’re looking at the correct Subscribe entry and that the details were saved in the expected location. To understand the difference between Config and Home, see the server management guide. For definitions of interface terms, consult the glossary.
Bottom line: Use differences to pinpoint the issue
A difference in results helps you check the network only when the URL stays the same and only the network changes. It helps you check the link only when the network stays the same and only the URL changes. Change one thing at a time so you know what to check next.
Verify the app and continue reading
Shadowrocket is available for Apple platforms through the App Store. Check the product page for the developer, Shadow Launch Technology Limited, and app ID 932747118. For system requirements, refer to the App Store listing. Once you have your own subscription details, follow the guide to check the import steps.
Verify the official App Store listing Read the guide