For users who have added a subscription but are seeing timeouts, an empty list, or no automatic updates. First check whether the request reaches the subscription server, then verify that the response can be imported, and finally set an update interval. Keep existing working nodes and troubleshoot one subscription group at a time. After a successful manual update, verify that automatic updates work too.
First, identify the issue: request failure, parsing failure, or unavailable nodes
No new nodes after clicking Update doesn't necessarily mean the download failed. A subscription update involves several steps: requesting the URL, receiving a response, recognizing its contents, and adding entries to a group. Node connections happen afterward, when the core uses node settings to connect. A successful subscription update doesn't guarantee that nodes are online, and a working node doesn't prove that the subscription URL is still valid.
Expand the information output panel and note the update time, group name, and most recent error. Use the table below to choose where to start. Don't change the URL, request method, and filter settings all at once, or you won't know which change made a difference.
| Symptom | Likely cause | What to try first |
|---|---|---|
| Times out after waiting | URL is unreachable or the request route is unavailable | Test updates both directly and through a proxy |
| Returns 401, 403, or 404 | Credentials, access restrictions, or an incorrect URL path | Copy the subscription URL again from the service dashboard |
| Download completes, but 0 items are imported | Response format doesn't match, or group filters exclude the results | Check the content type and alias filter rules |
| Node count stays the same | The subscription contents may be unchanged | Compare node names and addresses with the server's update records |
| Update succeeds, but connections fail | Node settings, service status, or routing issue | Check the core logs instead of repeatedly updating the subscription |
Check the subscription URL: don't use the management page URL
Open “Subscription Groups” → “Subscription Group Settings,” edit the affected group, and check the “URL” field. Enter the complete link that returns subscription data—not a login page, plan page, or dashboard URL from your browser's address bar. Field layouts may differ by version, so follow the labels in your current interface.
-
Keep the original group
Record the group note, original URL, and current node count. Don't delete all nodes yet: if the subscription service isn't reachable directly, an existing working node may be needed to update it.
-
Copy the URL again
In the service dashboard, choose the subscription link intended for v2rayN and copy it in full. Check for leading or trailing spaces, line breaks, and punctuation added by chat apps. Keep any query parameters in the URL.
-
Check the group update setting
In “Subscription Group Settings,” make sure “Enable updates” is turned on for the target group, then save. Select this group while troubleshooting and choose “Update current subscription” so results from other groups don't get mixed in.
-
Record one update result
Run one update and note the response status and number of imported items. If it still fails, switch request methods in the next section. Avoid clicking Update repeatedly, as this may trigger rate limits on the server.
Switching update methods: when to use “Update without proxy”
“Update without proxy” controls the request that fetches subscription data; it doesn't make all nodes connect directly. Common menu options are “Subscription Groups” → “Update current subscription (without proxy)” and “Update current subscription (through proxy).” For bulk updates, use the corresponding “Update all subscriptions” option. Spacing and parentheses may vary by version.
- No working nodes available: Start with “Update current subscription (without proxy).” Updating through a proxy requires a working local proxy route; a completely broken node can't be used to fix its own subscription.
- Direct updates time out, but you have a working node: Set a working node as the active server, confirm the core is running, then choose “Update current subscription (through proxy).”
- Proxy updates fail, but direct updates work: Check the active node, routing rules, and local listener. Don't reset the subscription URL right away.
- Both methods return the same 403: Check account status, subscription token, source restrictions, or server-side security rules first—not your system proxy settings.
“Set system proxy” and the subscription menu's request method are separate settings. Being able to open a page in your browser doesn't mean v2rayN uses the same route to fetch a subscription. If TUN is enabled or traffic is forwarded at the gateway, “without proxy” only means the app doesn't explicitly use the local proxy; the system network layer may still intercept the request.
Troubleshoot by error: timeouts, certificates, and format issues
Below are excerpts from common network errors. Full logs may include additional context, and localized system settings may display different wording. Check the status code and error type first, then decide whether to investigate the network, URL, or response format.
Error: The operation has timed out.
Cause and fix: The request didn't complete within the allowed time. Try both direct and proxy updates once, then check DNS resolution for the subscription domain and your current network. A timeout alone doesn't mean the token is invalid.
Error: Response status code does not indicate success: 403 (Forbidden).
Cause and fix: The server or an intermediary security layer rejected the request. Check account permissions, access restrictions, and the subscription URL. If needed, ask the service provider why the request was rejected at that time. Don't try to bypass restrictions with rapid retries.
Error: The SSL connection could not be established, see inner exception.
Cause and fix: The TLS connection couldn't be established; the inner exception contains more detail. Check your system date and time zone, trusted certificates, and network filtering. Don't disable certificate validation or change the URL to plain HTTP.
Error: 429 (Too Many Requests)
Cause and fix: Requests exceeded the server's rate limit. Stop retrying manually and wait as directed by the server. If the response includes Retry-After, wait for the specified time and increase the auto-update interval.
Download succeeded, but no nodes appeared? Check the response
HTTP 200 only means the request received a successful response; it doesn't guarantee the response is a subscription. Login pages, verification pages, and plan-expiration notices can also return 200. If the response starts with <!DOCTYPE html> or <html>, check the subscription link in the service dashboard instead of changing node protocols.
- Choose the right export format: Use the subscription format the service provider explicitly lists as compatible with v2rayN. Common formats contain one share link per line or text encoded with Base64. A regular web page, arbitrary JSON, or YAML file won't become a supported subscription just by changing its file extension.
- Distinguish links from configuration files:
vmess://andvless://are common prefixes for node share links. A full V2Ray or Xray runtime configuration is not the same as a subscription list; don't use them interchangeably. - Temporarily clear filters: Check the alias regex filter for this group in “Subscription Group Settings.” An invalid expression or overly restrictive condition may exclude every node. Record the existing value, clear it, and run one update for comparison.
- Check compatibility: If only some nodes fail to import, check the client version against the node settings provided by the service. The graphical client parses subscriptions, while the core establishes connections; investigate compatibility at each layer separately.
Set the auto-update interval: succeed manually first, then schedule updates
Go to “Subscription Groups” → “Subscription Group Settings,” edit the target group, and find “Auto-update interval (minutes).” Also make sure “Enable updates” is turned on. Follow the unit shown in the field: 360 means six hours, not six minutes. If your version uses a different unit or option name, don't copy the number without checking.
These are examples, not speed test results or guarantees from a service provider. Follow your subscription service's usage rules. If it allows only one fetch per day, don't set the interval to one hour. A shorter interval won't make nodes faster; it only increases how often subscription data is fetched.
- Use the current group to complete one manual update first. Once the URL, format, and request method are confirmed to work, save the auto-update interval.
- For scheduled updates, enter a positive number of minutes. Don't treat
0as “update now”; in many versions it means periodic updates are disabled. Check the description in your interface. - Keep v2rayN running after saving. Before closing the main window, check whether it will minimize to the system tray or exit the process. Scheduled tasks in the app won't run after the program exits.
- Keep the device connected to the internet and awake while testing. After the interval elapses, check the subscription update log in the information output—not just whether the node count increased.
Manually choosing “Update through proxy” once doesn't permanently change the request method for every scheduled update. Some versions may handle scheduled updates separately or have related settings. Check your current interface and review the log after the next scheduled update. Sleep, network outages, and app restarts can also affect when updates run, so don't expect a scheduled task to run at an exact second.
FAQ: keeping nodes, auto-refresh, and recovering from failures
Should I delete all my old nodes before troubleshooting a failed update?
Keep them for now. Record the original group and working nodes, then check the URL and request method. Deleting nodes won't fix DNS, certificate, or authorization errors, and may leave proxy updates without a working route. If you need to rebuild the group, back up the configuration first and remember that the backup also contains sensitive connection details.
Why does the subscription URL open in my browser but fail in the client?
Your browser may have an active login session, a proxy extension, or a different network route. First confirm that the response is subscription text, not a page shown after login, then test both update methods in v2rayN. If the service requires specific request headers, follow its documentation instead of guessing a user-agent string.
I set updates to every six hours. Why is the node count unchanged the next day?
First check the log to see whether an update ran, then compare the node details. A successful refresh won't increase the count if the subscription contents haven't changed. If there's no update record, check “Enable updates,” the interval unit, whether the app exited, and whether the device stayed asleep for an extended period.
All subscriptions failed, but one group still works. How should I investigate?
Select a failing group and run “Update current subscription (without proxy)” on its own, then record the status code. Next, test a proxy update using a working node. Compare URLs and filter rules group by group, and don't overwrite a working group. Different subscription services may require different request methods.
Before finishing, keep a brief record of the client version, failure time, update method, status code, and outcome. This helps the service provider investigate more than a report that “the subscription doesn't work.” Remove the full subscription URL and any tokens before sharing logs. Once both manual updates and scheduled updates work, restore your usual update interval.