Official Guide · Subscriptions and Servers

Shadowrocket
Subscription and Server Management Guide

Understand the difference between subscriptions, servers, and Config before importing, updating, or backing up.

This page is a reference for users who already have subscription or server details. For your first connection, follow the user guide to get started, then return to the relevant section to check fields and management options. The tutorial's import and troubleshooting steps also complement this page's guidance on updates, QR codes, and testing.

Get subscription links from your service provider. A one-time purchase of the client is not a subscription to a connection service. Shadowrocket and connection services are purchased separately. For app availability, pricing, and system requirements, see how to verify and purchase Shadowrocket on the App Store. Refer to the App Store listing for current details.

Recommended order

SubscribeSERVERConfig

Subscriptions maintain a set of servers; servers store connection parameters; Config determines how rules are handled. These are related, but they are different types of data.

01 / SUBSCRIBE

Subscribe and subscription entries

A subscription is a remote source of server details—not a connection switch or a rules configuration. It typically uses a URL to return multiple server entries. The client retrieves the content and displays the entries in the server list. To confirm a successful import, check that the subscription entry was saved and that server entries were created; the input screen closing is not enough. Having servers listed does not mean you are connected. You still need to select an entry, check Global Routing, and verify access.

First, identify what kind of information you have

When you receive connection details, identify whether they are a subscription URL, a single-server share link, or a configuration file. A subscription URL can be refreshed to replace a set of entries; a single-server link usually describes one server; a configuration file may contain DNS, rules, and policies. These three types of data do not belong in the same place. If the documentation is unclear, ask your service provider what the data contains and how to use it. Do not infer the type from a filename or link length.

Server collections and rule configurations also have different update scopes. A subscription can change server addresses without necessarily changing the rules in the current Config. Switching Config will not automatically correct a server password. During troubleshooting, first identify which type of data has the problem; this avoids repeatedly importing content without improvement. If you are just getting started, complete the process with one confirmed working subscription before adding others, so you have a clear baseline for comparison.

Save the Subscribe entry and check the response

From the add menu on Home, open Add Server, choose the Subscribe type, enter the URL, and give it a recognizable name. The exact menu location and fields depend on the current app interface. Before saving, check the URL character by character, especially capitalization, hyphens, and the final character in query parameters. Do not paste in explanatory text, line breaks, or punctuation, and do not remove anything after the question mark to “simplify” the URL.

Your current network must be able to reach the subscription URL for the initial fetch. If no servers appear after saving, distinguish between a failed request and a content parsing failure: the former may involve the network, certificates, or permissions; the latter may mean the response is in an unsupported format. A login page, message, or webpage is not a server list. Ask your service provider to confirm the response format and access status. Keep the exact error text rather than describing the issue only as “it won't import.”

What each data type does and where to check it
TypeWhat it containsCheck first
SubscribeSubscription URL and a way to retrieve a set of entriesURL, access permissions, response content
SERVERParameters for a single connectionType, address, port, authentication
ConfigRules, DNS, and other configuration dataCurrently selected file and rule order

Keep a traceable management record

Name subscriptions by purpose and source label, such as “Daily A.” Do not put access tokens in the name. A name is only for local identification; it must not be used for authentication. Record the group, selected server, and test network after the initial import so you have a basis for comparison after updates. If server names are similar, compare the address and protocol rather than assuming they are identical based on their displayed names.

A token in a subscription URL may grant direct access, so treat the URL like a password. Do not include the full URL in public screenshots, issue titles, or shared notes. When asking someone for help, provide the error type, network environment, and a redacted domain. Even if only a few characters look random, do not assume they are harmless. If a token is exposed, ask your service provider how to reset it.

02 / ADD SERVER

Add Server: manual fields and parameter checks

Manual entry is useful when you already have complete server parameters and need to verify each connection detail. Select the protocol type first, then fill in its fields. Do not enter the address and password and then repeatedly switch types. Protocols differ in their authentication methods and transport settings, and some fields may no longer apply after switching. The goal is to reproduce the supplied details accurately, not to experiment until the form looks complete.

Enter the address, port, and authentication details separately

Enter the supplied domain name or IP address in the server address field, and the supplied port number in the port field. An ordinary address field generally does not need a webpage path; do not paste a full share link into it. Remove any spaces around the domain, and make sure the port is a valid integer. If the details contain a colon, determine whether it separates the port or is part of an IPv6 address. Do not simply split the text at the final colon.

Authentication details must match the selected protocol. Shadowsocks requires the correct encryption method and password; VMess and VLESS often use a UUID; Trojan typically uses a password; HTTP and SOCKS5 may use a username and password. Do not enter a UUID as the server domain or put a remark in the password field. Copying can help avoid mistakes when characters look alike, but check for leading or trailing spaces and unexpected line breaks after pasting.

Key field checks for manual entry
Protocol or fieldWhat to checkCommon mistake
ShadowsocksMatch the encryption method and passwordChecking only the password and overlooking the encryption method
VMess / VLESSUUID, transport, and additional parametersCopying transport settings from another entry
Trojan / Hysteria2Authentication, TLS, and protocol-specific settingsSubstituting parameters from a different protocol
TLS / SNIThe name and requirements for certificate verificationChanging SNI as if it were an arbitrary remark
Host / PathThe value required by the selected transportRemoving a path or adding spaces without confirmation

Do not guess TLS, SNI, or transport settings

Names used for TLS do not always match the connection address. The server address determines the connection target; SNI supplies a name during the TLS handshake. They serve different purposes. If the supplied details specify an SNI value, enter it exactly as given. If no value is provided, do not copy one from another server. For certificate errors, check the name, device time, and certificate status. Disabling verification is not a routine fix.

With some transports, fields such as Host and Path can affect whether the server handles the connection correctly. Slashes, capitalization, and query strings in a path may all matter; do not rewrite them to suit English reading conventions. The same address and port do not guarantee matching transport parameters. If the supplied details are missing a required field, ask your service provider to confirm it instead of copying settings from another working entry and hoping they fit.

Verify a manual entry by changing one variable at a time

Before saving, give the manual entry a clear remark so it can be distinguished from subscription-generated entries. For the initial test, select only this server and avoid changing Config, DNS, or network conditions at the same time. First check whether the parameters establish a connection on the current network; then check whether the rules behave as expected. If you change several things at once, even a successful result will not tell you which field made the difference.

A manual entry usually will not receive the same updates automatically when a subscription refreshes. If your service provider changes the port, password, or certificate requirements, check the entry again. Keep a record of the parameter source and purpose, but do not put the full password in a visible remark. Clean up duplicate test entries after checking them so you do not accidentally select an outdated entry later and mistake stale parameters for an app connection problem.

Types such as WireGuard have their own key, address, and peer parameter structures; do not configure them as if they were ordinary “domain and password” entries. Configure them manually only when you have complete, matching details, and keep private keys confidential. For an overview of the differences between types, read supported protocols and fields, then return to this section to check each field.

03 / SCAN & CLIPBOARD

How to import using a QR code or clipboard

QR codes and the clipboard are just input methods; the result depends on the content they contain. A QR code may hold a single-server link or a subscription URL. Copied text may include instructions, line breaks, or multiple items. Before importing, decide whether you expect to add one server or create an updatable subscription. Even if the content is recognized, check the type of entry created after saving.

Check the source and readability before using Scan QR Code

Open Scan QR Code from the scan option in the app and allow camera access when prompted by the system. Scan only QR codes from server details you already have, not configuration content from an unknown source. Keep the entire code in frame and avoid glare, obstruction, and steep angles. If the code is on another screen, adjust its brightness and distance. Resolve recognition issues first, then check whether the link format is supported.

If camera access was denied, check Shadowrocket's camera permission in system settings, then return to the app and try again. If the QR code is saved on the device and the current screen offers a photo-library scanning option, you can use it. If not, obtain the original text link and import it from the clipboard. Do not upload a QR code containing authentication details to a public image host or an unfamiliar scanning site just to transfer the image.

Keep the full content when importing from the clipboard

Before copying, make sure the selection contains only the target link, not instructions such as “tap to import,” and that it includes the final URL parameters. Return to the app and use the clipboard import action available in the current interface. If the system asks for paste permission, choose whether to allow it for this action. If no content is recognized, check what was copied in a trusted local text editor. Do not keep granting permission without checking whether the clipboard contains an image or ordinary explanatory text instead.

Text displayed in a browser is not always the full underlying link. Some pages shorten the displayed address, so manually selecting the text may copy only an abbreviated fragment. Use the copy function provided with the details, or confirm that you have the complete link. Curly quotes, brackets, and trailing punctuation can also affect recognition. Remove only characters that clearly belong to the surrounding explanatory text; do not decode or rewrite unfamiliar parts of the link.

After recognition, check the new entry instead of scanning again immediately

After importing, return to Home and check the new entry's name, protocol, address, and group. If you expected a subscription but see only one server, the QR code may have contained a single-server share link. If a subscription was added but the server list is empty, check the fetch result instead. A correct name does not prove the parameters are complete; verify the port, authentication, and transport settings, comparing them with the original details if needed.

Scanning the same QR code again may create duplicate entries. Before trying again, check whether it was already saved but moved in the sort order or placed in a collapsed group. If you find duplicates, keep the one confirmed to work and note whether it was imported manually or generated by a subscription. Do not delete many entries before identifying their source; you could remove one in use or see a similar entry reappear on the next update.

Identify the stage where the import failed
SymptomCheck firstNext step
QR code not recognizedCode completeness, glare, camera permissionGet the original text link and import it
Text cannot be parsedComplete link, punctuation, content typeCheck which link formats are supported
Entry saved, but the list is emptyWhether it is a subscription and whether the request succeededCheck the response content and access status
Entry exists but cannot connectParameters, current network, connection authorizationContinue with connection verification and troubleshooting

Handle sensitive information after importing

QR codes and clipboard content can both contain complete authentication details. After importing, remove temporary images and text you no longer need, and check whether they are syncing to other devices automatically. Clearing the clipboard can reduce the chance of pasting the content by mistake, but it does not guarantee that copies saved in other apps or devices will also disappear. If you suspect the information has been exposed, ask your service provider about resetting the credentials rather than only deleting the local entry.

If the import succeeded but the connection failed, continue with the troubleshooting steps in the user guide. Scanning again will not fix certificate, password, or server status problems. Keep the differences before and after import and the exact error message. Describing “recognition failed,” “fetch failed,” and “connection failed” as separate issues is usually more useful than repeatedly adding the same content.

04 / LINK FORMATS

A share link encodes connection parameters; it is not simply another kind of webpage address. Each protocol has its own prefix and field structure, and parameters may be encoded. To determine whether a link is complete, check that its prefix, main content, query parameters, and remark have been preserved rather than trying to read the password by eye. If a link is not recognized, first check its format and original content. Do not replace characters blindly.

Distinguish a single-server link from a subscription URL

Content with prefixes such as ss://, vmess://, vless://, or trojan:// usually describes server details for the corresponding protocol. An ordinary HTTPS subscription URL, by contrast, is a network address for retrieving a set of entries. A prefix can help identify the type, but it does not guarantee that the content is valid or supported. The same protocol may use different encodings and additional parameters, which the app must parse in a supported format.

Do not use a share link as a browser address to test it. If a browser cannot open a protocol-specific link, that does not mean the server is unavailable. Conversely, an HTTPS address displaying a webpage does not mean it is an importable subscription. Check whether the response is in the expected format and whether the client creates the correct entry. Identify the type of source first, then use the corresponding import option.

# Subscription URL structure shown for illustration only; not a usable service
https://example.com/sub?token=xxxx

# Common single-server share link prefixes
ss://
vmess://
vless://
trojan://

Handling encoding, query parameters, and remarks

Percent-encoded text and Base64 content in a link may contain required fields. Do not convert them manually just to make them “look cleaner.” Plus signs, slashes, and equal signs can have encoding significance; if a copy tool changes a plus sign to a space or drops the final character, parsing may fail. Get the complete original text again before checking compatibility. Do not attribute a copy error to the protocol itself.

Parameters after the question mark may specify TLS, transport, a path, or other protocol options; they cannot all be treated as tracking information and deleted. In many share formats, the part after the hash is a remark, but preserve it in its original form for the app to process. If a name displays incorrectly, the remark encoding may be the cause, and the main parameters may still work. Check the displayed name and connection separately rather than treating them as the same issue.

A server link cannot replace Config

Importing a server usually saves a connection target; it does not mean rules, DNS, or Global Routing are configured. To route traffic by rules, check the current Config and configuration mode. Proxy and Direct also handle traffic differently when selected temporarily. A server name that mentions a particular use is only a remark; it does not make the client create the corresponding rules or replace an actual configuration check.

The following is an illustrative rule snippet from a Shadowrocket .conf file, not a complete configuration. Rules are checked from top to bottom in their actual file order, and processing stops at the first match. FINAL should be the last-resort rule. PROXY, DIRECT, and REJECT are rule actions, not three priorities that can be reordered arbitrarily.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
DOMAIN-KEYWORD,ad,REJECT
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

Check format issues and rule issues separately

If parsing leaves out the address, port, or protocol, first check the original content and format compatibility. If the server parameters are complete but a domain is routed unexpectedly, check which rule matches it. Do not try to fix rules by repeatedly editing a share link, or cover up a missing field by importing an unfamiliar configuration. Handle one layer at a time so the results remain clear.

When asking for help, you can share the protocol type, error message, and a redacted outline of the fields, but do not send the full authentication content. Hiding only the displayed name is usually not enough; sensitive information may be in the encoded content or URL parameters. If you are unsure how to redact it, describe the symptom and field names only. Keep the original details in a trusted location and avoid exposing more information than necessary.

For details on when to use Config, Proxy, and Direct, see Config, Proxy, and Direct in Global Routing. This chapter focuses on data formats and the boundaries between entry types. For everyday connection steps, follow the user guide.

05 / UPDATE

Subscription update strategies and recovery from failures

Updating a subscription means fetching its remote content again and syncing local entries according to the app's current behavior. It does not repair the connection for every server. The remote content may add, remove, or change servers, and local selections and names may also change. Before updating, define what you are trying to do: sync details, check for an address change, or troubleshoot a connection. Each goal calls for different checks.

Keep a baseline for comparison before updating

Before a manual update, note the subscription name, selected server, and test network. If needed, keep a redacted summary of the parameters. If you already have a working connection, do not change the rules file or network conditions at the same time. Compare entries added, removed, or changed after the update to determine whether the remote content changed, the request failed, or the list remained as it was.

Use the update action available in the current interface for the relevant Subscribe entry or management screen. Do not make deleting and re-adding the subscription your routine update procedure; you may lose local remarks, source associations, or useful comparison details. Tapping repeatedly will not make the remote service provide new data sooner and may trigger rate limits. If you see a delay or failure message, read it before deciding whether to retry.

Judge automatic updates by observable results

If the current interface offers automatic updates, choose an interval that suits how often you use the subscription and confirm what it applies to. Background activity on mobile devices depends on system scheduling, network availability, and battery state; a set interval is not a guarantee of exact background timing. If details may be out of date before you use them, run a deliberate manual update and check the result rather than relying only on an enabled toggle.

Frequent updates do not make a connection more stable. If the remote content has not changed, repeated fetches return the same data. Better times to update are when your service provider announces a parameter change, the list no longer matches the supplied details, or you need to confirm that the subscription is still valid. If you have to edit fields manually after every update, check whether entries meant to be maintained by a subscription are being treated as permanent manual entries.

Troubleshooting subscription updates by stage
StagePossible symptomWhat to check
Network requestTimeout or domain name cannot be resolvedCurrent network, DNS, address reachability
Access authorizationAuthentication failed or access deniedToken, validity, access conditions
Content parsingWebpage returned or format errorWhether the response is in the required subscription format
List synchronizationEntries added or removed, names changedRemote changes and currently selected entry

Preserve the current working state if a request fails

A subscription update timeout does not mean every server is unusable. First check whether the device can access the network, then distinguish an unreachable subscription URL from a problem with the current network. Depending on the settings and routing conditions, subscription fetching may or may not use an existing connection. Do not assume either way. If you retry on another network, note the change. Do not also change the token, URL, and configuration, or you will lose track of the cause.

For authentication or access errors, ask your service provider whether the subscription URL has changed, the token is still valid, or access is restricted. Do not post the full URL on a public page when asking for help. If the response is empty, do not clear the local list immediately. First confirm whether the remote service intentionally returned an empty set or the request was redirected to a message page; then decide how to recover.

After a successful update, check selections and rule references again

When synchronization finishes, check whether the selected server still exists and whether an entry with the same name but different parameters has appeared. Review any configuration references that depend on server names: a name change may mean the existing selection no longer refers to the same target. Subscription synchronization does not guarantee that all references in a custom configuration will be fixed automatically. Verify the selected entry, test access, then address outdated names or remarks.

If only a few servers have problems after an update, keep the other working entries and compare the affected entries' addresses, ports, and authentication details one by one. Do not repeatedly delete and recreate the entire subscription to fix a single entry. If the problem is in the remote content, report the specific change and failure stage. Keep the recovery materials you need locally, and follow the deletion and backups section for migration.

06 / ORGANIZE

Organizing multiple subscriptions and tracking entry ownership

When managing multiple subscriptions, the priority is not to standardize every name but to retain the source and maintenance method for each entry. You should be able to distinguish subscription-generated servers from manually added servers and temporary test entries. Otherwise, when a server stops working, it will be hard to tell whether to update the subscription, edit manual parameters, or remove a temporary entry. Organize entries to make ongoing maintenance easier; there is no need to add complex layers just for a tidy appearance.

Use consistent names that reveal little sensitive information

Name subscriptions by purpose and source label, such as “Daily A” or “Backup B.” Mark manual entries as “Manual” and temporary entries as “Test.” Do not include passwords, full subscription URLs, or authentication tokens in names. Use consistent labels for the same source to make updates and backups easier to match. Remarks can explain an entry's purpose, but should not promise that a server will always work; conditions can change with the network and remote service.

A subscription refresh may replace server names with names from the remote content, so do not keep important maintenance details only in those names. For information you need to retain long term, use a separate protected record with the subscription label and useful identifying details. Do not rely on list position to remember a server; updates, collapsed groups, and sorting can all change its position. Confirm it using at least its name, protocol, and source.

Check duplicate entries by identity, not by name

Two entries with the same name may connect to different addresses; entries with different names may use the same target. To identify duplicates, compare the protocol, address, port, and key authentication or transport settings. Do not expose sensitive fields during comparison. If entries come from different subscriptions, retain their source information even if their parameters currently match, since future updates may differ.

When you find duplicates, first remove temporary entries that are clearly the result of an accidental import. Do not delete entries under a subscription without confirming their source. Local changes may be recreated or overwritten on the next refresh; actual behavior depends on the current app. If you no longer use a subscription, complete any migration and backup first, then remove the subscription entry. Deleting a few servers individually may not change what the next update returns.

Organize entries according to how they are maintained
Entry typeSuggested identifierMaintenance action
Subscription-generatedSubscription label and server sourceUse subscription updates as the primary sync method
Manually addedMark the remark as manual and state its purposeCheck each field against the original details
Temporary testUse a clear test labelOrganize or remove it after confirming the result
Preparing to stop usingTrack migration status separatelyVerify the replacement before deleting

List groups and rule policies are different concepts

Groups shown on Home are for organizing the list; they should not be mistaken for policy selections in Config. Seeing servers under the same subscription only indicates a shared data source. It does not mean they switch automatically according to a rule. Actual traffic handling depends on Global Routing, the current configuration, and its policy references. After reorganizing the list, check that your existing selections still suit your needs.

Renaming an entry can affect configuration references that use its name. Before changing names, check for custom rules or policies that depend on them, and keep a record mapping old names to new ones. Do not rename everything and update the subscription at the same time. Keeping naming changes separate from remote synchronization makes it easier to identify which action affected a connection or selection.

Make small, sequential changes instead of a single large cleanup

Organize one subscription at a time: first confirm the entry is valid, check which servers belong to it, test one server, and then remove clearly duplicated temporary entries. Finish one group before moving to the next. Do not collapse, rename, sort, and delete everything at once. Changing only a few entries per pass makes it easier to return to a working state if something goes wrong, without rebuilding the entire list.

Test and sorting results are only part of the basis for organizing entries; they should not determine deletion by themselves. A server that times out on the current network may behave differently on another network, and a temporarily high latency does not mean its parameters are invalid. Record “currently unavailable,” “parameters expired,” and “no longer needed” as separate states before deciding to keep, update, or remove an entry. This helps prevent temporary network issues from causing data loss.

When using multiple devices, be clear about how each device syncs and who maintains it. Saving the same subscription on two devices does not mean manual remarks, sorting, or selections will stay in sync. Do not assume a change on one device takes effect everywhere without confirming the sync method. After moving to another iPhone or iPad, check its servers, Config, and system connection authorization independently.

07 / CONNECTIVITY TEST

Latency testing, sorting, and verifying a real connection

A latency test measures responsiveness under specific test conditions; it is not a complete assessment of connection quality. A low result once does not guarantee that every webpage will load, and a single timeout does not prove that a server is permanently unavailable. Understand whether the test checks connection setup, a particular request, or another form of reachability before interpreting its result. Consider test results alongside real access and rule matching rather than choosing only the lowest number in the list.

Keep test conditions consistent before comparing servers

Before running Connectivity Test, check the device's network, whether a connection is already established, and the current Global Routing and Config. Keep these conditions as consistent as possible when comparing servers; do not test some on Wi-Fi and others on a mobile network. Avoid downloading large amounts of data or switching networks during the test, as environmental changes make the results harder to compare.

If the current interface lets you choose a test method or target, note the settings and use the same conditions for the whole group. The test target may also be temporarily unavailable, so if every entry times out, check the target and device network before concluding that all the servers are down. Repeating the test after some time can show whether results are consistent, but there is no need to run it continuously just to get a better-looking number.

Distinguish responsiveness, throughput, and real-world availability

Response time measures how long a specific operation takes; it does not directly indicate transfer speed, sustained stability, or access to a particular service. Remote load, network routes, and the target service's status can all affect the experience. When choosing a server, check test results and verify that it reliably handles the tasks you actually use. A brief test is not a substitute for real use, and its result is not a permanent characteristic of the server.

If an entry passes its test but webpages do not load, check DNS, rules, TLS, and the target site rather than immediately reimporting the subscription. The test may not cover domain resolution or the actual request, and each may follow a different route. Start with a known test target, then check where the request fails. See DNS troubleshooting when latency is normal but webpages will not load for related steps.

Global Routing and what to verify
ModeHow it handles trafficWhat to check
ConfigRoutes traffic according to the current configuration's rulesCheck which rule matches the target domain
ProxyHandles connections in proxy modeCheck which server is currently selected
DirectHandles connections in direct modeDoes not prove that a proxy server is available

Sorting changes the display order; it does not guarantee automatic selection

Sorting by latency can help you find entries that responded faster in the current test, but do not assume the app will switch to the first entry automatically. Check the selected marker, confirm the server manually if needed, and then test access. If the configuration uses other policies or selection logic, check what they actually reference so the selected entry in the list is not confused with the target ultimately used by a rule.

If you cannot find a familiar server after sorting, search by name and source instead of importing it again immediately. Timed-out entries may move to the end, and collapsed groups may hide entries. For lists with multiple subscriptions, check whether sorting applies to the current group or a larger set; the actual behavior depends on the current interface. Identifying the entry matters more than remembering which row it used to occupy.

Record results by failure stage

Real-world verification has several checkpoints: whether the entry is complete, whether the server can establish a connection, whether system connection authorization works, whether the domain resolves, and whether the target request completes. When something fails, note which checkpoint it reached. A system VPN configuration prompt during the first connection is part of authorization, not subscription authentication. See why the VPN configuration prompt appears for more information.

If one server repeatedly fails under the same conditions while other entries work, check that entry's authentication, port, and remote status. If all entries fail at once, first check shared conditions such as the device network, test target, and configuration changes. Checking shared causes before individual parameters is generally more effective than changing fields at random, and makes it easier to describe the issue to your service provider.

08 / BACKUP & REMOVE

Safe steps for deletion, migration, and backups

Before deleting anything, confirm the object, scope of impact, and available recovery materials. A single server, subscription entry, Config file, and system VPN configuration are different objects; deleting one does not remove the others. If you want to stop a connection, disconnect first and check the On Demand conditions. If you want to organize the list, manage its entries. Do not delete all your data just to disconnect normally.

Back up the necessary details before deleting anything

At a minimum, a backup should include valid subscription URLs, manually entered server parameters, the Config actually in use, and notes that explain how they are related. A subscription URL can retrieve the current remote content, but it cannot guarantee recovery of a previous server list. A configuration file may not include every manually added server. Identify the materials needed to rebuild each object; do not rely on a screenshot of the list alone.

If the current app provides an export, share, or backup option, check what it includes and whether it contains authentication details or custom configuration. Different options may export only a single entry rather than the entire state. After exporting, check in a trusted location that the file is readable and complete before deleting the original entry. Do not assume that a file can be restored successfully just because it was created.

Protect backups containing sensitive information

Backups may contain subscription tokens, passwords, UUIDs, or private keys. Store them in a protected location under your control. If you sync between devices, check the account, devices with access, and sharing scope; do not use a folder that is public by default. Label backups clearly by purpose and contents, but never put full credentials in the filename. After a temporary export, also remove copies from message attachments, the photo library, and other transfer locations.

Reinstalling the app and restoring its working data are separate tasks. To get a previously purchased app on a replacement iPhone or iPad, see how to restore a previous purchase. Reinstalling the app does not guarantee that servers, subscriptions, and custom configurations will all be restored. Do not rely on assumptions about system backups; confirm in advance that you can rebuild essential data and keep a separate checklist.

What to confirm before deleting each item
Item to deleteWhat to checkRecovery source
Single serverWhether it is in use and whether it came from a subscriptionOriginal parameters or a valid subscription
Subscribe entryEffects on associated servers and configuration referencesComplete, valid subscription URL
Config fileWhether it is the active configuration and whether it contains custom contentProtected copy of the configuration
System VPN configurationEffects on connection authorization and On Demand conditionsRequest system authorization again in the app

Clean up entries in small, deliberate steps

Before deleting a server, switch to another entry confirmed to work and check whether any name references depend on it. Before deleting a subscription, read the confirmation prompt and check what will happen to associated entries; the current app's prompt is authoritative. A single server removed from a subscription may reappear on the next refresh. If you are retiring a source for good, plan at the subscription level rather than repeatedly deleting entries after every update.

Before deleting Config, export any custom content and confirm that another suitable configuration is available. If access behavior changes afterward, first check the current Global Routing and selected file rather than immediately changing a server password. If you remove the system VPN configuration, a future connection may request authorization again. That rebuilds the system connection configuration; it does not mean the subscription must be purchased again or server credentials have expired.

After recovery, verify the import, selection, and connection

During recovery, add the subscription or manual servers first, then confirm the list and source. Next, import and select the required Config, and finally check Global Routing and system connection authorization. Do not restore a large number of old entries and immediately delete duplicates; first verify one complete working path. If a configuration copy is from an earlier setup, check that the server names it references still exist so that a successful restore does not point to missing entries.

Keep the old device and valid backup materials until verification on the new device is complete. Once everyday access, subscription updates, and custom rules all work, remove copies you no longer need. If a subscription token or password in a backup has been reset, use the current details from your service provider. An old backup can help explain the configuration, but it can no longer serve as valid authentication material.