A failed VPN subscription update can create two different symptoms: every node disappears from the client, or the old node list remains visible even though the subscription should have been refreshed. These symptoms look similar, but they usually point to different stages of the update process. The client may be unable to reach the subscription URL, may receive an empty or unsupported response, may reject the imported format, or may successfully download new data without replacing the profile shown on screen.

This guide follows the full path from the subscription link to the active connection. It covers official VPN clients on Windows, macOS, Android, iOS, and Linux, as well as compatible tools such as Clash Verge, sing-box, and Shadowrocket. The aim is not to guess which protocol or route is fastest. Instead, the checklist helps you identify whether the problem comes from the account, the subscription address, the client, the local network, or the routing rules.

Understand what a subscription update actually does

A subscription is not the same thing as a single server configuration. A single-node profile usually contains one address, one port, an authentication value, a protocol, and transport settings. A subscription link is an address that a compatible client uses to retrieve a collection of route configurations and related update data. Depending on the provider and client, the response may be formatted for Clash, sing-box, a generic URI list, or an official application.

When you press an update button, several operations take place. The client resolves the subscription domain, establishes an HTTPS connection, sends a request, receives a response, identifies the format, parses the configuration, and stores the result in a local profile. A failure at any stage can produce an error such as “update failed,” “empty list,” “invalid configuration,” or “no proxies found.” The wording differs between applications, so the most useful evidence is often the runtime log rather than the headline error.

90+

Countries covered

200+

Routes listed

Unlimited

Online devices

5

Supported platforms

An empty node list does not necessarily mean that all routes have been removed. The client may have hidden incompatible entries, failed to finish parsing, or applied a filter that excludes every imported item. Similarly, an old list does not prove that the update succeeded. Some clients retain the previous cache when a request fails, while others create a new profile without activating it. Always distinguish between the downloaded profile, the selected profile, and the route currently used by the system.

Protocol support is another important boundary. Common subscription data may contain Shadowsocks, VMess, Trojan, VLESS, Hysteria2, or WireGuard entries. A client that supports only one format may display no usable nodes even when the response itself is valid. Clash Verge, sing-box, Shadowrocket, and official clients do not necessarily support exactly the same protocol features or transport parameters. Updating the application can therefore be as important as updating the link.

Key point: A subscription refresh has both a download stage and an import stage. Identify which stage failed before changing routes or reinstalling the client.

Start with the least destructive checks. Open the user panel through the official service page and confirm that the account is active and that the expected plan or traffic status is visible. A username and password are used to access the panel, while the subscription link is used by the client to retrieve configuration data. These are related but separate credentials. Being able to sign in does not automatically prove that the copied subscription address is correct.

Copy the subscription link again instead of editing the old one by hand. A missing character, an extra space, a line break, or a partially selected URL can make the client request a different address. On mobile devices, long links may be truncated when copied from a formatted message. On desktop systems, browser extensions or clipboard managers can also alter the pasted text. Paste the address into a temporary plain-text field and check that it remains one continuous URL before importing it.

Treat the link as sensitive information. Anyone who obtains a valid subscription URL may be able to retrieve the same configuration data in a compatible client. Do not send it to online conversion services merely to change formats, and do not post it in screenshots, public chats, support forums, or shared documents. If you believe the link has been exposed, use the account panel or support channel to obtain a replacement according to the service’s available options.

  • ✅ Confirm that you are signed in to the intended account rather than a second account with no active profile.
  • ✅ Copy the complete subscription link again from the official panel.
  • ✅ Remove accidental spaces, quotation marks, and line breaks introduced during copying.
  • ✅ Keep the old working profile until the new profile has been tested.
  • ❌ Do not publish the link or paste it into an untrusted conversion website.
  • ❌ Do not assume that a successful account login proves the subscription request can reach its server.

If the panel shows a newly issued link, use the new address rather than repeatedly retrying an older one. A client may continue using cached data even after the link has changed. Rename the imported profile with a clear label such as “current subscription” and record the update date in the client’s note field if that feature exists. Avoid keeping many profiles with nearly identical names; choosing the wrong one is a common reason users believe that nodes are missing.

Run a safe refresh on desktop and mobile

Before refreshing, close duplicate VPN or proxy applications. Two clients can compete for the system VPN interface, local port, DNS handling, or routing table. On Windows and macOS, check the notification area or menu bar for another active tunnel. On Android and iOS, disconnect another VPN profile before starting the update. A subscription request may need to use the ordinary network, while the client is trying to send it through an unstable or circular proxy route.

Use the client’s built-in subscription update function whenever possible. In an official client, this may appear as “Refresh,” “Update subscription,” or a similar action. In Clash Verge, confirm that the profile URL is attached to the intended profile group. In sing-box, verify that the imported configuration is recognized as a complete configuration rather than a text fragment. In Shadowrocket, check that the subscription has been added under the correct section and that automatic update is not disabled.

  1. Disconnect the current tunnel while keeping the existing profile saved.
  2. Open the subscription or profile management screen.
  3. Review the URL and replace it with a freshly copied address if necessary.
  4. Start a manual update over the ordinary Wi-Fi or mobile network.
  5. Wait for the client to finish downloading and parsing before switching screens.
  6. Open the resulting profile and confirm that usable entries are visible.
  7. Select the intended profile and test one ordinary connection before changing advanced rules.

On Android, battery optimization and background restrictions can interrupt a long request or prevent the client from completing an update after the screen is locked. Temporarily allow the client to run in the background while troubleshooting. On iOS, background behavior is more restricted, so perform the refresh while the application is open and the device has a stable network connection. On Windows and macOS, security software may inspect or block the client’s network request; check its application permissions without disabling protection unnecessarily.

Linux users should check whether the graphical client, system service, and command-line process are using the same configuration directory. A profile imported by one user may not appear in another user’s application session. If sing-box is started as a service, verify that the service is reading the updated configuration rather than a copy stored in a different directory. A successful manual import in the graphical interface does not prove that the background service has reloaded the file.

Symptom Likely stage What to inspect Safe next action
The update fails immediately Request or URL stage URL, network access, DNS, certificate message Copy the link again and test another network
The update completes but shows no nodes Parsing or filtering stage Format support, protocol support, group filters Import into a compatible client and review filters
The old list remains unchanged Profile selection or cache stage Last update time and active profile name Refresh the selected profile and avoid duplicate names
Nodes appear but cannot connect Runtime or routing stage Logs, DNS mode, rules, system VPN permission Test one entry with simple rules first

Separate network errors from format errors

Changing from Wi-Fi to mobile data, or from one trusted network to another, is a useful diagnostic comparison. If the subscription updates on mobile data but not on Wi-Fi, inspect local DNS, captive portal login, router filtering, or network-level access restrictions. If both networks fail in the same way, the issue is more likely to involve the link, account, service response, client compatibility, or a temporary problem at the subscription endpoint.

Do not repeatedly press refresh without reading the log. Look for categories rather than relying on one exact phrase. A DNS resolution error means the domain name was not translated into an address. A timeout indicates that the connection did not complete in the expected period. A certificate or TLS error suggests a problem with secure negotiation or local clock validation. An HTTP status error means the server returned a response that the client did not accept. A parser error usually means data was received but the client could not interpret it.

Time and date settings deserve special attention. Incorrect system time can cause secure connections to fail certificate validation. This is relevant on freshly installed desktop systems, devices that have been offline for a long period, and virtual machines. Correct the system clock through the operating system’s normal settings, then restart the client and retry the update.

Captive portals can also create misleading results. Hotels, schools, airports, and public hotspots may redirect every request to a sign-in page. The VPN client may report invalid subscription data because it received HTML from the portal instead of the expected configuration. Open a normal browser page, complete the network sign-in, then retry the subscription refresh.

If the response downloads successfully but the list remains empty, investigate format and filters. Some clients require a specific subscription type, while others expect a raw URI list or a complete YAML or JSON configuration. A profile can also contain groups, exclusions, region filters, or disabled entries that hide otherwise valid data. Temporarily use the default profile view and remove custom filters only for testing. Restore your preferred rules after confirming that the imported data is present.

Restore missing nodes with a controlled import

When a refresh leaves the node list empty, create a new profile instead of overwriting the only copy. This separates the new import from the client’s existing cache and makes it easier to compare behavior. Give the new profile a distinct name, paste the complete link, choose the format recommended by the provider, and save it without activating it immediately. If the client offers a preview, check whether it identifies the response as Clash, sing-box, or another supported format.

Next, verify protocol compatibility. A client may recognize the subscription but omit entries using unsupported transports. Shadowsocks and VMess profiles may import differently from Trojan, Hysteria2, or WireGuard entries. VLESS is also dependent on the client’s support for its related transport and security parameters. Do not “fix” a missing node by randomly changing protocol fields. Manual edits can invalidate authentication, alter transport behavior, or create a configuration that looks complete but cannot connect.

Official clients are usually the simplest choice when the service provides a platform-specific application for Windows, macOS, Android, iOS, or Linux. They may handle account association, subscription updates, and supported protocols as one workflow. Third-party clients are useful when you need rule groups, per-app routing, custom DNS behavior, or a broader configuration view, but they require closer attention to format and permissions.

After importing, test in layers. First confirm that the profile contains entries. Then select one entry and check whether the client can establish its local tunnel. Next test DNS resolution and a normal website. Finally, test the specific application that originally failed. If the connection works only when global routing is enabled, your rules may be excluding the intended traffic. If global routing works but a rule group fails, inspect domain matching, application rules, and DNS mode rather than replacing the entire subscription.

  • ✅ Keep one known profile as a fallback while testing the replacement.
  • ✅ Test a single route before changing rule groups or DNS settings.
  • ✅ Confirm that the system VPN permission is granted to the active client.
  • ✅ Check whether the selected profile, not merely the downloaded profile, is active.
  • ❌ Do not import the same link repeatedly under indistinguishable profile names.
  • ❌ Do not combine two clients’ local proxy ports or system tunnel modes.
Practical conclusion: Import a clean replacement beside the old profile, verify the format and protocol support, then activate it only after the node list and one test route are both visible.

When the old profile works but refresh does not

This pattern usually indicates that the existing local configuration is still usable, while the update request or replacement process is failing. Leave the old profile active if it is needed, but avoid treating it as a permanent solution. An old profile may not contain newly published routes, current transport parameters, or updated rule information. Use it only to maintain temporary connectivity while investigating the update path.

Check whether the client has separate settings for update traffic and proxy traffic. Some applications allow subscription requests to use the direct network, a selected proxy, or the system route. A circular setup can occur when the client tries to fetch its subscription through a profile that depends on the same subscription being updated. Select direct access for the update test if the client provides that option, then switch back to the desired mode after the profile is refreshed.

Also inspect automatic update settings. A failed background task may have created a warning while leaving the last successful profile untouched. Review the last successful update time, the next scheduled update, and the profile’s enabled state. If the client supports a cache reset, use it only after exporting or recording the current working configuration. Clearing all application data too early can remove useful logs and a functioning fallback.

If the subscription works in one compatible client but not another, compare the response format and supported protocols. This is a compatibility finding, not necessarily proof that the subscription is invalid. Use the client that correctly imports the recommended format, or obtain platform-specific guidance from the official support channel. Avoid uploading private configuration data to third-party testing websites while comparing clients.

FAQ for missing VPN nodes

Why did all nodes disappear after a refresh?

The client may have received an empty response, failed to parse the format, applied an over-restrictive filter, or activated a new profile with no compatible entries. Check the update log, profile format, and filter settings. If the previous profile still works, keep it saved while creating a separate replacement profile.

Why is the old profile still visible after an update?

Many clients retain cached data after a failed request, or they update one profile while another profile remains selected. Check the profile name, last update time, and active status. A visible old list is not proof that the latest subscription data has been downloaded.

Why does the same link work in one client but not another?

Clients differ in supported subscription formats, protocols, transports, DNS behavior, and rule syntax. Confirm that the target application supports the format recommended for it and that the imported entries use supported protocols such as Shadowsocks, VMess, Trojan, Hysteria2, VLESS, or WireGuard.

Should I reinstall the VPN client?

Reinstallation should be a later step, not the first response. It can remove cached profiles and diagnostic information without fixing a bad link, blocked network request, unsupported format, or incorrect system permission. Export or preserve a working configuration, check the logs, test another network, and create a clean profile first.

Most missing-node problems become easier once the update process is divided into separate questions: can the link be reached, was valid data returned, can the client parse it, and is the resulting profile actually selected? Work through those questions in order, preserve a fallback, and avoid exposing subscription credentials during troubleshooting. This method is safer and more reliable than repeatedly changing protocols or deleting every profile at once.