v2rayN Subscription Update Failed? How to Fix Empty Node Lists

Troubleshoot expired URLs, connection problems, unsupported formats, and the “Update via proxy” setting to fix failed subscriptions and empty node lists.

At a glance

Keep your existing nodes, then identify which stage is failing: the URL request, content parsing, or node use after import. This guide is for v2rayN users seeing update timeouts, empty subscription results, or failures after changing the update method. Check the URL, network, response, and import results in order to avoid unnecessary reinstalls or deleting working settings.

Identify the failure stage: Was the content not downloaded, or did parsing fail?

Open the log or information panel in v2rayN, update the affected subscription group once, and note the time and full error message. Don’t delete all your servers first: existing nodes may still work, and you’ll need one if you test “Update via proxy.”

Subscription URL Network request Response body Format parsing Node import

Each stage points to a different issue. DNS lookup failures and connection timeouts happen during the request. If content arrives but the format is rejected, the problem is parsing. If nodes appear but won’t connect, check their settings, the core, or routing—not subscription downloads.

Step 1: Check the subscription URL, validity, and group

Copy the full URL again from your provider’s subscription management page. Subscriptions are usually HTTPS URLs with authorization parameters. vmess:// and vless:// are typically single-node share links and should be imported from the clipboard. Using a share link as a subscription URL may result in an invalid URL error.

  1. Back up your existing settings

    Use the client’s built-in backup or export feature to save your settings first. Exporting nodes alone may not include subscription groups or routing settings, so check what the backup contains.

  2. Open the group

    In the main window, go to “Subscription Group” → “Subscription Group Settings,” edit the affected group, and check its subscription URL. Depending on your version, you may need to click Edit or double-click the group to open its details.

  3. Paste the URL again

    Copy the full URL again and check for leading or trailing spaces, line breaks, or missing query parameters. Don’t remove the token after the question mark, or use a shortened URL displayed on a web page as if it were complete.

  4. Update the group

    Update this group on its own first. If your version only offers an update-all option, find the result for the affected group in the logs. Don’t mistake a success message for another group as confirmation that this one is fixed.

An invalid subscription URL and expired nodes are not the same thing. If the provider resets the subscription token, the old URL may stop working immediately, even if some existing nodes still connect. An expired plan or exhausted traffic may also result in a denied request, empty response, or information page; the provider determines what you’ll see.

Step 2: Compare direct updates with updates via proxy

In common v2rayN interfaces, the “Subscription Group” menu offers “Update all subscriptions (without proxy)” and “Update all subscriptions (via proxy).” Some versions use a switch or slightly different labels. This setting controls how the client fetches subscription content; it doesn’t make every node in the subscription connect through the currently selected node.

Current situationTry this firstWhat to check
The subscription domain is reachable directly from your networkUpdate without a proxyCheck the response content, not just whether the page opens
Direct update times out, but a working node is availableStart a working node, then update via proxyCheck the local proxy listener and request logs
All existing nodes are unavailableTest a direct connection or another trusted network firstAvoid relying on the same unavailable nodes to update themselves
Proxy update returns 403, but direct update worksUse direct updates for now and check the provider’s restrictionsCheck for restrictions on exit IP addresses or access regions

A subscription opening in your browser doesn’t mean the client can access it directly. Your browser may use the system proxy or retain a login session, while the client’s subscription request may use different proxy settings, cookies, or headers. Before comparing results, make sure both requests use the same network path.

Before choosing Update via proxy, make sure the proxy core is running. Check the local listening port under “Settings” → “Parameter Settings.” Labels vary by version, so use the value shown in your current configuration. For example, if the HTTP or mixed proxy listens on 127.0.0.1:10808, the update request must be able to reach that port. Use your actual port if it’s different; don’t copy the example blindly.

Step 3: Narrow down network issues using the exact error

These are common English error messages from network requests. The exact wording varies by operating system, runtime, and v2rayN version. Use them to identify the failing stage, not to assume the root cause: a timeout, for example, may come from an unresponsive server, a local firewall, or the proxy route.

Error: No such host is known

Cause: The subscription domain couldn’t be resolved. The URL may be misspelled, the domain may no longer be active, or DNS resolution may be failing on your network.

Fix: Check the full domain, then compare the lookup from another trusted network. For proxy updates, also check how DNS is resolved on the proxy side.

Error: Connection refused

Cause: The connection was refused by the destination. For proxy updates, the local proxy port may not be listening.

Fix: Check the host and port in the error. If it points to your local machine, make sure the core is running and the listening port matches your configuration.

Error: The operation has timed out

Cause: The request didn’t complete within the allowed time. This alone doesn’t mean the subscription has expired.

Fix: Test both direct access and a working proxy, check the provider’s status, and retry the same URL over another trusted network.

Error: The SSL connection could not be established

Cause: The TLS handshake or certificate validation failed. Common causes include an incorrect system clock, a certificate chain problem, or network interception.

Fix: Check your system date, time, and time zone, then review the domain and certificate error details. Don’t hide the issue by disabling certificate validation.

Changing DNS won’t fix a core that isn’t running and a local port that isn’t listening. Increasing the timeout won’t restore authorization if the provider denied access. Identify the failing layer first, then change only the relevant setting.

Step 4: An HTTP success doesn’t guarantee valid subscription content

A status code describes how the server handled a request; it doesn’t guarantee that v2rayN can parse the response body. HTTP 200, in particular, may contain a node list, a login page, a CAPTCHA, an expiry notice, or an empty string. Seeing text in a browser only proves that a response arrived—not that the subscription is valid.

200
Request succeeded; check the response format
403
Request denied; check access and permissions
429
Request rate-limited; stop repeated refreshes

Inspect the response only on your own device. If the body starts with <!DOCTYPE html> or <html, you probably received a web page rather than a node list. If it contains only a login prompt or CAPTCHA, get the correct subscription URL from your provider instead of trying to import the entire page.

Step 5: Troubleshoot Base64, protocol formats, and empty results

Subscriptions commonly provide multiple share links, sometimes encoded together as Base64. Base64 is encoding, not encryption; the decoded content may reveal node passwords, IDs, and addresses. Don’t upload your full subscription to an unfamiliar conversion service to troubleshoot parsing failures.

What you seePossible issueWhat to do
Multiple lines of vmess:// or vless:// linksSome links may be damaged or use unsupported parametersTest importing one complete link locally to see whether all links fail or just a few
A long string of encoded textMay be a Base64 subscription or a truncated responseCopy the original URL again and let the client retrieve the full response
YAML configuration or another JSON configurationYou may have selected a subscription endpoint for a different formatChoose an endpoint from your provider that explicitly supports v2rayN; changing the file extension won’t convert the format
An empty response or whitespace onlyThe provider may have returned no nodes, or access may be failingCheck your plan, assigned nodes, and account status; contact the provider if needed
HTML tags, a CAPTCHA, or a login promptThe subscription request may have been redirected or interceptedCheck the final URL and access policies, then get the correct subscription address

If a share link imports from the clipboard but the full subscription still returns no nodes, check whether the response is complete, contains extra explanatory text, or uses the wrong export format. A format working in one version doesn’t mean every version or interface supports the same import behavior.

If only new protocol parameters aren’t recognized, back up your settings and consider updating v2rayN. The client fetches subscriptions, parses links, and generates configuration; the core handles proxy connections. Updating the Xray core won’t necessarily fix the client’s subscription parser. If an imported node fails to start because its configuration is incompatible, check which core is selected and whether it supports the node’s parameters.

Final check: Verify the group and nodes after updating

After seeing a success message, check the node count in the affected group and make sure your search term, group filter, or display settings aren’t hiding the list. If the count differs from what the provider expects, check whether fewer routes are available and whether the logs show any entries that failed to parse.

  1. Check the right group: Clear search filters, select the group you just updated, and confirm that the new and existing nodes changed as expected.
  2. Test a node: Select a node, start the connection, and use the client’s real connectivity test or try accessing a site. A reachable TCP port alone doesn’t prove that proxy authentication and transport are working.
  3. Check how widespread the problem is: If all nodes fail, check the core startup logs, system time, and local proxy first. If only a few fail, check the status of those routes.
  4. Record what worked: Note which update method succeeded so you can compare it next time instead of resetting every setting.

If the issue persists, send your provider information they can use to reproduce it: the full v2rayN version, operating system, failure time and time zone, results with and without a proxy, HTTP status code, and redacted logs. Include only the domain and necessary path details from the URL; remove tokens, node credentials, and account information. A clear request record is more useful than “the subscription doesn’t work.”

Download V2Ray Client