Aug 3, 2026 · Troubleshooting · About 8 min read

How to Add a Shadowrocket Subscription: A Step-by-Step Guide

Learn where to add a subscription URL in Shadowrocket, how to save and refresh your server list, and what to check if the link is rejected or no nodes appear. A practical setup walkthrough for new iPhone users.

At a glance

This guide walks through adding a subscription URL you already have to Shadowrocket on iPhone, saving it, and refreshing the server list. It also explains how to tell an import problem from a connection problem, and what to check when the URL is rejected or the list stays empty. You’ll use Home → + → Type → Subscribe, then verify the result before changing any other settings.

1. Before You Add the Subscription

A subscription is a URL that lets Shadowrocket request configuration details from your existing service. It is different from an individual server entry, which is usually added with details such as a server address, port, and authentication parameters. If you have a single server’s connection details rather than a subscription URL, adding it as a subscription will not turn those details into a subscription.

This walkthrough assumes you already have your own service and a subscription URL intended for use with Shadowrocket. Shadowrocket is a closed-source commercial app, and purchasing the app does not include a server, subscription, or service plan. This guide explains how to add information you already have; it does not provide, sell, or recommend servers or subscriptions.

Before opening the app, copy the subscription URL from the subscription or configuration section of your existing service. Use the service’s copy function when available. Do not substitute a sign-in address, account homepage, payment page, or the address currently shown in a browser’s address bar. Those pages may open normally in a browser but still not return configuration data that Shadowrocket can import.

1 URL
Use the complete subscription address from your existing service
3 checks
Save the group, refresh it, then verify that entries appear
Home → +
Start the subscription setup from the Home screen

2. Add and Save the Subscription in Shadowrocket

On iPhone, open Shadowrocket and go to Home. The exact appearance of the screen can vary with the app’s current interface, but the subscription is added from the add-server flow. Select the subscription type rather than entering a URL into fields intended for a single server. A URL copied from a service’s subscription page is not a server address or a server port.

  1. Open Add Server

    In Shadowrocket, go to Home and tap the + button in the upper-right corner. This opens the add-server options. If the screen you see is asking for individual server details, check the Type selection before entering anything.

  2. Select Subscribe

    In the add-server screen, open Type and select Subscribe. Confirm that the form now expects subscription information. Do not put the subscription URL into a single-server Address field, or enter a subscription URL as a server address.

  3. Paste the URL

    Paste the complete URL provided by your existing service into the subscription URL field. Compare the beginning and end with the original copy, and remove any accidental surrounding quotation marks or spaces. Keep the URL’s query string, including any characters after ?.

  4. Save the entry

    Save the subscription using the control shown in the add-server screen, commonly the upper-right save control. Return to Home and look for the subscription group or its associated entries. Saving stores the subscription information; the list may still need to be refreshed to retrieve its contents.

  5. Refresh the list

    On Home, pull down to refresh the server list and wait for the request to finish. Keep Shadowrocket open while it updates. Check the result or any message shown by the app before repeating the refresh; repeated requests do not fix an incomplete URL or a subscription that is unavailable.

If the app shows a permission prompt for adding a VPN configuration, that prompt is separate from importing a subscription. Follow the iOS system prompt if you intended to enable the connection, then return to Shadowrocket. VPN permission does not verify the URL, fetch subscription contents, or prove that a server will connect.

3. Verify the Import Before Testing a Connection

After refreshing, first check whether the subscription group or server entries are visible on Home. If the group is collapsed, expand it and inspect its contents before concluding that it is empty. If the group is visible but contains no entries, treat that as an import or response issue. If entries are visible but a connection fails, the subscription has at least produced entries; investigate the selected server and connection separately.

Subscription import

Entry point
Home → + → Type → Subscribe
Input
The complete URL from your existing service
Success check
Refresh completes and entries appear on Home

A saved group name alone does not confirm that the latest request returned usable entries.

Single server entry

Input
Server address, port, and protocol-specific details
Example port
443, only when specified by your service
Success check
Fields match the server details supplied to you

The example port is illustrative; do not assume it is correct for your own server.

Once entries appear, you can select one on Home and test the connection. Keep the import check and the connection check separate: a server can be imported but fail to connect, and a successful connection test does not establish that every destination will work. If no entries appear, focus first on the URL, the response, and the update message rather than changing Global Routing or DNS.

4. Troubleshoot a Rejected URL or an Empty List

Start with the message shown after saving or refreshing. “The subscription could not be loaded” and “the server does not connect” describe different stages. The first points toward retrieving or parsing subscription data; the second happens after an entry has been selected for a connection attempt. Record the wording and when it appeared so you do not troubleshoot the wrong stage.

Error: Failed to load subscription

Cause and next step: The URL may be incomplete, unavailable, or not a subscription response. Copy it again from the subscription section of your existing service, confirm it is still valid with that service, then refresh from Home.

Error: Invalid URL

Cause and next step: The pasted text may contain a typo, extra characters, or a missing part. Compare the saved value with the original, including characters after ?, and paste the complete address again.

Error: No nodes appear

Cause and next step: The group may be collapsed, the response may contain no supported entries, or the request may not have completed. Expand the group, refresh once, and ask your existing service to confirm that the subscription is active and returns configurations.

Error: Request timed out

Cause and next step: The current network may not reach the subscription endpoint in time. Check that ordinary internet access works, then try once on a different network if available. If the service provides an approved update route or instructions, follow those instructions rather than guessing at a setting.

When checking a URL, do not remove query parameters just because they look unfamiliar. They may identify the subscription or be required by the service. Do not replace them with details from a different account or copy another person’s URL. If you are uncertain whether a URL is still valid, ask the service that issued your own subscription to verify it.

If a subscription update requires an existing connection to reach its endpoint, check whether your service’s instructions specify an update route. Shadowrocket’s available options and labels can depend on the installed app version and configuration. Do not turn on an unrelated routing option just to see whether the list changes; make one documented change at a time, refresh once, and restore the previous value if it does not help.

5. Frequently Asked Questions

Do I need to enter a port for a subscription?

No. A subscription URL is entered using Type → Subscribe; it is not a single-server address-and-port form. A port such as 443 belongs to an individual server entry only when your existing service specifies it.

I saved the subscription, so why is Home still empty?

Saving keeps the subscription entry, but does not by itself confirm that the URL returned configurations. On Home, pull down to refresh, expand the group if it is collapsed, and check the resulting message. If it remains empty, verify the URL and subscription status with the service that issued it.

Should I add the same URL again if the first refresh fails?

Usually not. Check the existing group, copy the URL again only if needed, and refresh that entry. A duplicate group will not correct a rejected URL and can make it harder to identify which entry you are updating.

The servers are listed, but none connect. Is the subscription invalid?

Not necessarily. A visible entry shows that configuration data was imported, while connecting is a separate step. Select an entry, check its status or error message, and confirm the service and server details with your existing provider before changing routing or DNS settings.

Download Shadowrocket