This guide explains how to add a subscription URL you already have to Shadowrocket on iPhone, load its connection list, and refresh it later. It also covers what to check when the list is empty or an update fails, how to avoid exposing a subscription URL, and how to tell subscription data apart from routing settings. The steps apply to the English-language interface; labels and available fields may vary by app or system version.
1. What a subscription does—and what it does not do
A subscription is a source of connection details that Shadowrocket can import and refresh. When you add one, the app uses the URL you provide to retrieve the entries associated with it. Those entries can then appear in the list on Home, where you can choose an available connection. The subscription URL belongs to your own service; this guide does not provide or recommend connection services, subscription links, or connection entries.
Keep three separate things in mind while setting up: the subscription, the connection you select, and the way traffic is routed. Updating a subscription refreshes the imported entries. It does not necessarily change the active Config, DNS choices, or rules, and it does not guarantee that a particular entry will connect successfully. If a page still fails after an update, check the connection and routing settings separately instead of repeatedly adding the same subscription.
Adding a subscription also does not buy or include a network service. The Shadowrocket app is a paid app obtained through the App Store; any service or subscription is separate. If you still need the app, use the site’s App Store guide to verify the product information. For device compatibility and system requirements, refer to the App Store listing.
2. Add an existing subscription on iPhone
Before starting, make sure the iPhone has internet access and that you can retrieve the subscription URL from the source where you received it. Copy the complete URL, including its scheme and any query string. Avoid manually retyping it: a missing character, an added space, or a truncated ending can prevent Shadowrocket from retrieving the list. Keep the URL in a private place while you work.
-
Open Home
Launch Shadowrocket and go to
Home. If you have already imported entries, note the existing list before making changes so you can tell which items appear after the import. -
Start an import
Tap
+onHome. In the type selector, chooseSubscribe. This identifies the item as a subscription source rather than a manually entered connection. -
Enter the URL
Paste your own subscription URL into the subscription address field. Check that the beginning and end of the address are present and that no blank space was copied before or after it. If the screen shows additional fields, use the values supplied with your subscription rather than guessing.
-
Save the entry
Save the subscription and return to
Home. Allow the app to finish retrieving the list. A first import needs a network connection; if the list does not appear, wait for the request to finish and then follow the checks below. -
Check the result
Look for the imported subscription or its entries on
Home. Select an entry only after confirming the list has loaded. A successful import means the data was retrieved; it is not a test of every connection or routing rule.
For a subscription already in your list, don’t add the same URL again just to refresh it. Duplicate entries can make it harder to identify which group you are using. Return to Home and use the refresh action available there—pull down on the list to refresh—then wait for the update to complete. The exact on-screen indicators can vary, so check the entry and any message the app displays rather than assuming that a brief pause means the update succeeded.
Stores a subscription source so its list can be retrieved again when you refresh it. Use this when you already have a subscription URL and want to manage its imported entries as a group.
Best for: importing and refreshing an existing subscription
Represents a single connection entered from details you already have. It is not a subscription source and does not refresh a subscription list.
Best for: one connection that you manage individually
Holds traffic-handling configuration, such as rules used in Config routing. It is distinct from a subscription’s imported connection entries.
Best for: checking rules and configuration separately
3. Refresh the list and verify what changed
Refresh an existing subscription when you need to retrieve its current list again. On Home, pull down to refresh and wait for the result before testing a connection. Avoid rapidly repeating the action: multiple attempts do not fix an invalid address or unavailable network, and they can make it harder to notice which request returned an error.
After refreshing, verify the result in stages. First, check whether the subscription’s entries are visible. Next, select an entry that is available to you and try connecting. If the connection succeeds, check the intended traffic using the current Global Routing mode. For example, Direct is not the same as sending requests through a proxy, and Config follows the rules in the active configuration. A subscription update does not automatically switch these settings to a particular mode.
- The list changed: Check the refreshed entries and select the one you intend to use. A changed list may reflect changes made at its source.
- The list looks unchanged: Confirm the update completed and check for an error message. The source may have returned the same entries; an unchanged list by itself does not prove that refresh failed.
- The entry is present but connection fails: Check whether the iPhone is online, whether the selected entry is current, and whether the active routing mode matches what you are testing. An imported entry can still be unreachable.
- A website behaves differently: Record the active connection and
Global Routingmode, then inspect the relevant rules inConfigif you are using rule-based routing. Don’t use a subscription refresh as a substitute for checking routing.
Practical check: separate retrieval from connectivity
Ask two questions in order: did Shadowrocket retrieve the subscription entries, and can the selected entry establish a connection? A visible list answers only the first question. Keeping the two checks separate points troubleshooting toward the URL and update request, or toward the connection and routing settings, instead of treating every failure as an import problem.
It can help to note the network in use, the time of the refresh, whether the entries changed, and the exact error text. If you switch between Wi-Fi and cellular during an update, repeat the check on one stable network so the results are easier to interpret. Don’t include the subscription URL or other private account details in notes you plan to share.
4. Troubleshoot an empty list or an update error
If the subscription appears on Home but no entries load, first confirm that the URL was entered into the Subscribe type and saved. Then check whether the iPhone can access the network you are using. If you copied the URL from a message or password manager, compare the saved value with the original privately. Look for a missing character, extra whitespace, a line break, or an expired address. Don’t publish the address to test it somewhere else.
- Refresh does nothing: Keep Shadowrocket open on
Home, use the pull-to-refresh action once, and wait for a completion result. Confirm the phone is online and try again on a stable network if needed. - The update reports a timeout: A timeout can indicate that the address could not be reached from the current network, but it does not by itself identify the cause. Check ordinary network access first, then confirm with your own provider that the URL is current and available.
- The URL is rejected or the result is empty: Verify that you copied the complete address and selected
Subscribe. Ask your own provider whether the link remains valid and whether they expect any particular import details. - Some entries appear but one does not connect: Treat this as a connection test, not an empty subscription. Check the selected entry and routing mode, and ask your provider about that entry if the problem persists.
If a message appears, use its exact wording when looking for the cause; don’t infer a specific failure from a generic loading delay. Share the error text with your own provider only after removing the subscription URL, account identifiers, and other credentials. If the provider confirms that the link is valid, retry the update on a working network and check whether the entries then appear.
5. Common questions
Do I need to add the same URL again every time?
No. Add the subscription once, then refresh the existing entry from Home. Adding it repeatedly can create duplicates and make it less clear which list you selected.
Why is the list visible if a connection still fails?
Retrieving entries and connecting through one of them are separate steps. Check the selected entry, the current network, and Global Routing. If you use Config, inspect the active rules as well.
Can I share my subscription URL to ask for help?
Keep it private. Send the exact URL only to your own provider through a channel they identify as appropriate, and never post it publicly or include it in an unredacted screenshot.
Does buying Shadowrocket include a subscription service?
No. The app purchase and any network service are separate. Obtain the app through the App Store, and use only subscription details you already have from your own provider.
Once the subscription has loaded, keep its entry on Home and refresh it when needed rather than re-importing it. If an update fails, check the saved URL and network access first; if the list loads but traffic does not work as expected, move on to connection selection and routing. This sequence makes it easier to identify the stage that needs attention while keeping your subscription details private.