V2Ray Subscription Import Failed or Shows No Servers: Common Causes and Fixes

Expired links, incompatible formats, proxy settings, and encoding issues can all cause subscription errors. Follow these checks to find the problem.

At a Glance

For anyone seeing “subscription update failed,” “update succeeded but no servers appeared,” or “import fails after switching clients.” Keep your existing servers, then check the subscription URL, network, response content, and client format—in that order. First determine whether the subscription failed to download or downloaded but could not be parsed. Then check the group count and test a server to confirm recovery.

1. Keep Existing Servers and Identify Where the Update Fails

Don’t delete all your servers or reinstall the client as a first step. A subscription update typically involves three actions: requesting the subscription URL, reading the response, and converting its contents into a server list. A failure at any stage can leave the list empty, but each calls for a different fix.

Note the client version, time of the error, group name, and full log message. Find the version under Help → About or in Settings; menu names vary by version. When reporting an issue, include the full version number rather than just saying “latest.” If you have working servers, use the client’s backup or export feature to save them locally. Exported files may contain credentials, so don’t share them publicly.

What you seeCheck firstAvoid for now
Timeout or DNS lookup failureSubscription domain reachability and whether the update uses a proxyChanging server UUIDs or transport settings
401 or 403 responseToken validity, account status, and server access restrictionsRe-encoding the subscription
Format error or parse failureWhether the response actually contains server dataAssuming all servers are offline
Update completes, but the list is emptySelected group, search filters, and format compatibilityDeleting every group and starting over

2. Check the Subscription URL and Group Settings

A subscription URL retrieves a list of servers; it isn’t the provider’s homepage or an individual server address. Content starting with vmess:// or vless:// is usually a single server share link, which you should import using the client’s clipboard import option. An HTTP or HTTPS URL may just lead to an account page, so its prefix alone doesn’t confirm that it’s a subscription.

  1. Copy the URL again

    Find the subscription option on your provider’s account page, select a format compatible with your client, and copy the URL again. Don’t copy the account page URL from your browser’s address bar or a truncated link from a chat preview.

  2. Check the full URL

    Use a local text editor to check for leading or trailing spaces, line breaks, and extra quotation marks. Preserve characters such as &, =, and % in query parameters. Don’t edit the token or decode the URL more than once.

  3. Check the subscription group

    In a typical v2rayN desktop interface, open Subscription Group → Subscription Group Settings, then add or edit the target group, enter a name and subscription URL, and save. If your version has a different layout, look for the equivalent group management feature. Don’t enter the subscription URL in a server address field.

  4. Update only the selected group

    Return to the main screen, select the group you just saved, and choose the option to update the current subscription from the Subscription Group menu. For your first troubleshooting attempt, update only this group to keep other groups’ errors out of the logs. Note how many servers were added and save the full error message.

If your provider reset the subscription token, the old URL might still open a status page but no longer return server data. Replace the URL saved in the group rather than just testing the new URL in a browser. Whether an expired account, depleted traffic allowance, or device limit affects subscription access depends on the provider’s policies; check your account page.

3. Check the Update Request: Direct or Through a Proxy

A webpage opening in your browser doesn’t mean the client uses the same network route to update a subscription. Your browser may follow the system proxy settings, while the client may explicitly connect directly. Conversely, an update set to use a proxy can fail if the local core isn’t running or the active server is unavailable.

There’s no single standard local proxy port. 10808 is just one common configuration; use the listener port shown in your client’s settings. When testing a manual proxy, don’t assume HTTP and SOCKS proxies are interchangeable. If you use the system proxy for testing, restore its previous settings afterward so other apps aren’t left using the troubleshooting setup.

4. Understand Status Codes and Common Error Messages

The status codes below describe HTTP request results, not server speed-test results. They reflect the meaning of the protocol and aren’t based on tests by this site. In particular, a 200 response only means the server returned content; it doesn’t prove that the content is a valid subscription.

200
Request succeeded; check the response body
401
Request lacks valid authentication
403
Server understood the request but denied access

What to do: Check the response before troubleshooting encoding

For a 401, 403, or login page, first check the URL and access permissions. Troubleshoot Base64, character encoding, or client compatibility only after confirming that the response contains server data.

Log messages vary by client version and operating system. The examples below are common network request errors or fragments. If the log includes an underlying exception, read it alongside the main error rather than capturing only the last line.

Error: Response status code does not indicate success: 403 (Forbidden).

Cause and fix: The server rejected the request, possibly because of the token, source restrictions, or access policies. Get a fresh subscription URL and check your account status. If it still fails, report the time and status code to your provider; simply changing the encoding is unlikely to help.

Error: The SSL connection could not be established, see inner exception.

Cause and fix: The TLS connection couldn’t be established. First sync your system date and time zone. Then check whether the inner exception points to certificate trust, hostname, or network filtering. Don’t leave certificate verification disabled as a workaround.

Error: The input is not a valid Base-64 string

Cause and fix: The parser received text that doesn’t match the expected Base64 format, often because it’s an error page, truncated, or in the wrong export format. Check the response type first, then copy the correct subscription URL for your client.

If the response starts with <!DOCTYPE html> or contains a login form or human verification page, the client received a webpage, not a server list. Your browser may pass verification using a login session, but a standalone client doesn’t have the same cookies. Use the provider’s dedicated subscription URL for client access, not the URL of a page you opened after logging in.

5. Check the Format, Encoding, and Server Compatibility

“V2Ray subscription” doesn’t guarantee a universally compatible file format. Common responses include line-by-line share links, Base64-encoded link collections, and complete configurations for specific clients. A full JSON or YAML configuration serves a different purpose from a collection of share links; you can’t convert one into the other just by changing the file extension or encoding it again.

What the response looks likePossible issueWhat to do
Multiple share links, or their Base64-encoded textTruncated content, altered characters, or unsupported protocolsFetch the original content again and check the client version and supported formats
JSON starting with a curly braceCould be a full configuration or an API error messageRead the fields first; don’t assume it can be imported as a subscription
Indented YAML with rule fieldsCould be a complete configuration in another formatReturn to the provider’s page and choose a format compatible with your client
HTML, login instructions, or a verification promptWrong URL, authentication failure, or access protectionGet the dedicated subscription URL again and ask your provider how to access it
Empty or whitespace-only responseTemporary API issue or no servers available for the accountCheck your account benefits and server status, then retry once later

The encoded data in a VMess share link has a different structure from the URI in a VLESS share link. The subscription’s outer encoding, the encoding inside an individual link, and URL percent-encoding are three different things. Repeatedly decoding, inserting characters by hand, or changing punctuation inside a token can corrupt otherwise valid data. Fetch the original content again instead of trying to repair a long text manually.

6. Update Succeeds but the List Is Empty: Check Display, Then Parsing

“Success” may only mean the request finished; it doesn’t necessarily mean any servers were added. Check which group is selected, clear the search box, and look for active filters. If you have multiple groups with similar names, temporarily add a distinctive note to the target group so you don’t confuse its update log with another group’s server list.

  1. Compare the server count before and after: Note the number of servers in the target group and the number imported in the log. If the list is empty but the log shows imported servers, check the selected group and filters first.
  2. Check whether the response body is empty: Inspect this update’s response locally; don’t share its contents. An empty response points to a server-side or account issue. If it contains data but imports zero servers, then check the format.
  3. Isolate the problem with a single link: If you can safely obtain a complete share link, test it using the client’s clipboard import option. If a single link imports but the full subscription doesn’t, check the subscription wrapper and any non-server text mixed in.
  4. Test an actual connection: After importing successfully, select a server and run a real connection latency test, then check whether your app accesses the network through the proxy. A restored list confirms only that parsing works again; it doesn’t mean every remote server is available.

Don’t retry the update immediately after every failure. Repeated requests can trigger rate limits and turn a format issue into an access problem. If the log shows 429, stop retrying and wait for the period specified by the server. If no wait time is given, ask your provider about its limits first.

7. Subscription Troubleshooting FAQs and Recovery Checks

Why does the subscription open in my browser but time out in the client?

First confirm that your browser shows server data rather than a login page, then compare the network routes used by your browser and client. In v2rayN, test both direct updates and updates through a proxy, keeping the log for each attempt. Your browser’s login session isn’t automatically shared with the client.

Do I need to enable both the system proxy and TUN?

No. You don’t need to enable both modes as a prerequisite. First confirm that you have one working server and a network route that can access the subscription, then test the update. If you explicitly choose “through a proxy,” check that the client’s local proxy works rather than adding more traffic interception modes.

No servers appeared after importing on Android. What should I check?

In v2rayNG or v2flyNG, open Subscription Group Settings and check that the URL and group were saved, then update the subscription. Menu names may vary slightly by version. If you pasted a single share link, use the clipboard import option instead.

Will getting a new subscription URL immediately disable my old servers?

The subscription token controls access to the server list; server credentials control connection access. They’re different fields, but a provider may reset both at once. Read the reset instructions and keep a copy of your working configuration. After resetting, update the group and test the servers rather than assuming the old ones will still work.

Download clientsWindows · Android · macOS · Linux