You can import a subscription from the clipboard, a QR code, or a Safari handoff. In the type list it is Subscribe. After a successful import, Home shows a group of servers. The count should roughly match the provider’s notes. Later updates run Update on that entry. Failure may show timeout, download error, host unreachable, or a parse error. These causes differ. Do not reinstall the app first.
This site does not provide subscription URLs, QR codes, or server parameters. Without a valid configuration, allowing the VPN still cannot create a proxy connection. The steps below are only a check order.
Separate “update” from “connect”
An update fetches the subscription URL and writes the node list locally. A connection selects a server, turns the switch on, and builds a tunnel. After an update fails, old nodes often remain and may still connect. After a connection fails, the update may still have succeeded. Mixing the two is how people delete a list that still works.
A scheduled update is the same action on an interval. If it still fails when the interval hits, the cause is the same as a manual tap. Shortening the interval will not repair an expired URL.
Check order
- Is it this feed, or every feed? Several subscriptions can coexist. Fix only the one that errors. Deleting every configuration drops nodes and rules that still work, and you lose a comparison.
- Is the URL still valid? Copy the subscription URL from the provider again, then overwrite or re-add this entry. After an expired account, a reset, or a new update address, the old URL keeps failing. Do not “fix” a URL by changing the display name. The display name is not used for updates.
- Can the current network reach the update host? Some update APIs work only while disconnected; others need an existing node first. Try Global Routing on Direct, then update, or try another network. See Global Routing.
- Timeout or parse error? A timeout means no content arrived in time, usually the network or provider API. A parse error means content arrived but is not a format the app accepts. Confirm the subscription type with the provider. Do not change the latency test or DNS for this.
- Is the system clock correct? A wrong date can break the TLS handshake. Updates and connections then both look broken. Turn on automatic date and time in system settings first.
Differences by import method
Clipboard import needs the full URL, with no extra spaces or copied notes. QR import needs the provider’s code, not a random webpage screenshot. Safari handoff depends on a URL the provider wrote to the expected scheme. This site cannot generate it. A single server is a manual protocol, address, port, and password or UUID. That is not a subscription update. Fields must match the provider. A typo will not be corrected by Update.
The Config page manages conf files. Some people add a subscription only on Home, then look for Update on Config; or they update a conf and expect the node list to follow. The two sources can differ. Before you update, confirm you tapped the entry you originally imported.
The update succeeded, but the list looks wrong
If the node count drops suddenly, update once more and check the provider’s notice. When the provider retires routes, a shorter list is expected, not lost app data. You can rename display names; they are not used for the connection. Do not judge a successful update by a renamed label. Use the count and whether a connection works.
Rule sets and node subscriptions are often two URLs. Updating nodes alone does not refresh routing under Config. Updating rules alone does not add home-screen servers. When you need both, run each update. Do not expect one Update to cover everything.
What not to do first
- Deleting every subscription and conf, then reinstalling. That clears data that still works and will not revive an expired URL.
- Installing a “modified build that can update” from outside the App Store. See Install from the App Store only.
- Retrying the same failed URL dozens of times. If the provider is rate-limiting, it will keep failing.
- Treating an update failure as a latency-test problem. The test does not fetch subscriptions. See latency tests.
If the clipboard holds notes and a URL together, the app may not read a valid address. Copy only the line with the provider’s scheme prefix, or only the https link. A blurry, reflective, or partial QR code can import the wrong content. That looks like an “update failure,” but the bad address was written at import.
One subscription can include many servers. An update may replace the whole table or merge by the provider’s rules, depending on the installed version. Do not force-quit the app during an update. After an interrupt, the list may stay on old data or write only a partial set. Update once more. If it still fails, check the URL and network in the order above.
If the provider gave both a subscription and a conf, ask which one you should update daily. With two sources, home nodes and Config rules can drift. Global Routing on Config then looks like “I updated, but nothing changed.” The app did not drop the update. You updated a file that is not the one in use.
Some office or campus networks allow the browser but block the app from the update host. Open the provider’s subscription page in Safari first (do not save the page as an install package) to confirm the domain is reachable, then update in Shadowrocket. If Safari works and the app times out, ask the provider whether non-browser requests are blocked.
Import and update locations are in the illustrated tutorial. Subscribe in the type list is on Features. If the VPN switch does nothing, see permission first. Do not mix that with a subscription update. This site does not create or renew any subscription.