Use this guide for subscription timeouts, HTTP errors, missing nodes after an update, or scheduled updates that never run. Keep your existing nodes, then check the URL, request path, response, and auto-update conditions in order. Change one thing at a time and use a manual update on the same group to confirm the fix.
First, tell a failed subscription download from a failed node connection
A subscription update is an HTTP or HTTPS request from the client to retrieve a configuration list. Connecting to a node is a separate process: the core uses server details from that list to establish a connection. An old node still working doesn't mean the subscription URL is valid, and a successful update doesn't mean every new node will connect.
Note which step fails. A 403 usually means the request reached an HTTP service. For connection refused, first determine whether the local proxy port or the remote server refused the connection. Don't assume every error means a node is down.
- Keep your working groups and note the current node count, active server, and time of the error. Don't clear the list first.
- Update one affected group at a time to keep logs separate. Check the subscription operation output in the v2rayN main window; use core logs to investigate the proxy route if needed.
- Note whether the request was direct or sent through a proxy. Use the same URL for any follow-up comparison.
- Save the error keywords and status code. Before contacting the service provider, redact the full subscription URL, access token, and account details.
Check the subscription URL: expired links, login pages, and format mismatches
In v2rayN, open “Subscription Group” → “Subscription Group Settings,” edit the group, and check its URL. In v2rayNG, open “Subscription Group Settings” from the sidebar and verify the URL for the relevant entry. Menu labels can vary slightly by version; look for the page where the group name and subscription URL are edited.
Copy the client subscription URL again from your provider's account page. Check for leading or trailing spaces, line breaks, smart quotes, or parameters truncated by a messaging app. Subscription URLs often contain access credentials; after credentials are reset, an old URL may stop working even if it looks similar.
| What you see | What it may mean | Next step |
|---|---|---|
| HTTP 401 / 403 | Invalid credentials, restricted access, or a gateway blocking the request | Check your account status and copy the latest subscription URL. If it still fails, ask whether requests from your source are restricted. |
| HTTP 404 / 410 | The path doesn't exist, or the old endpoint has been removed | Get the URL from your account page again; don't guess the URL path. |
| HTTP 429 | The request rate is being limited | Stop retrying repeatedly. Wait as instructed by the server and increase the update interval. |
| HTTP 200, but parsing failed | The response may be a login page, verification page, or unsupported configuration format. | Check the response type and choose a subscription format supported by your client. |
| Update succeeded, but no nodes were added | The subscription may be empty or unchanged, or some entries may not have parsed. | Compare the total node count and logs before and after the update; don't rely on the “Added” count alone. |
Direct vs. proxied updates: compare using the same URL
The v2rayN “Subscription Group” menu usually offers options such as “Update Current Subscription (Direct)” and “Update Current Subscription (Through Proxy),” and may also include an option to update all subscriptions. Select the affected group and test each option once. The system proxy toggle and the subscription menu's download method are separate settings. Don't infer the request route from the taskbar icon alone.
- Direct fails, but proxy works: Keep using the proxy for updates, then check whether your local network can resolve and reach the subscription domain.
- Direct works, but proxy fails: First fix the active node or local proxy listener. The subscription service may also block traffic from proxy exit IPs.
- Both methods return the same 403: Check subscription access and server-side rules first. Repeatedly changing the local port is unlikely to help.
- Both methods time out: Check the network, DNS resolution, and server availability before contacting the provider.
In v2rayNG, first start a configuration known to work, then select “Update Subscription” from the menu in the top-right corner of the main screen. If your version offers an option to update through a proxy, note whether it's enabled. If there is no separate option, don't assume the desktop menu behavior applies. An Android VPN connection indicator alone doesn't prove that the subscription request went through a remote node.
Bottom line: restore one working update route first
If a direct update works, use it for now. If updates work only through a proxy, keep at least one working node. Don't delete the old group before testing; you could lose both the subscription entry and the proxy connection needed to download it.
Error keywords: timeouts, certificates, DNS, and port conflicts
Error messages vary across operating systems and clients. The snippets below are common low-level errors. Check the destination and surrounding log entries before changing network settings based on a single keyword.
connection refused
Cause and fix: The destination port actively refused the connection. If the destination is 127.0.0.1, check whether the local core is running and whether the proxy port matches. For a remote address, check the server port and service status.
context deadline exceeded
Cause and fix: The request didn't finish within the time limit. Compare direct and proxied updates, and check whether it stalls at connection, TLS handshake, or response reading. Simply increasing the timeout won't fix an expired URL.
no such host
Cause and fix: DNS resolution failed. Check the subscription domain's spelling and confirm the device has network access. If the error is in the core log and refers to a node domain, troubleshoot the active node rather than immediately changing the subscription URL.
x509: certificate has expired or is not yet valid
Cause and fix: The certificate validity check failed. Correct the device's date, time, and time zone first. If they're correct, ask the provider to check the certificate; don't bypass the issue by disabling certificate verification.
address already in use
Cause and fix: Another process is using the local listening port. Close any duplicate client instances or change the listening port. Then confirm the core starts successfully before testing a proxied update.
How to check a local port
Suppose the local listening port under “Settings” → “Parameter Settings” is 10808. Run the following command in Windows Terminal. This port is only an example; replace it with the value shown in your client. Use the configured HTTP, SOCKS, or mixed listener type.
netstat -ano | findstr ":10808"
Check the local address and entries with a LISTENING status. Note the PID in the last column, then find the process under “Details” in Task Manager. A listener owned by the current core is normal. Take action only if another process has claimed the same listening address and port. Don't end a process just because you recognize the port number, and don't assume commonly used ports are fixed defaults across versions.
Auto-update settings: check v2rayN and v2rayNG separately
Complete a manual update before setting a schedule. Auto-update only repeats downloads on a schedule; it can't fix a 403, an incorrect URL, or an unsupported format. Pay close attention to the time unit: minutes and hours differ by a factor of 60.
| Client | Where to look | What to set and verify |
|---|---|---|
| v2rayN | “Subscription Group” → “Subscription Group Settings” → edit the relevant group | Look for “Auto-update interval (minutes)” or a similar field. For an update every 6 hours, enter 360 in a minutes field. |
| v2rayNG | Sidebar: “Subscription Group Settings” → edit the relevant group. Also check “Settings” in the sidebar for subscription update options. | Check whether your version has an auto-update toggle and interval field. If the unit is hours, enter 6 for an update every 6 hours; don't copy the desktop value of 360. |
| Versions without a scheduled update option | No matching option appears on the group edit or settings pages | Update manually using “Update Subscription” on the main screen, or check the release notes before deciding whether to upgrade. |
In many v2rayN versions, the auto-update interval is saved for each group. Setting one group doesn't enable it for the others. If the field uses 0 to mean disabled, enter an interval greater than zero and save. If there's a separate enable switch, turn that on too. Check the current version's documentation for the exact disable value and schedule behavior; don't assume updates start immediately after saving.
Auto-update support and its location vary by v2rayNG version. Don't mistake an option such as “Allow Updates,” which controls whether a group can be updated, for an auto-update switch. Set a schedule only if the interface explicitly offers that feature. If it's not there, there's no hidden setting path that applies to every version.
- Interval: Start with a schedule of every 6 to 12 hours, or 360 to 720 minutes. This is a recommendation, not a software default. Follow the provider's guidance if it sets a request frequency limit.
- Desktop requirements: Keep the client running. Downloads won't continue on schedule while the app is closed or the device is asleep. After waking the device, check the latest update record.
- Android background requirements: In the system “Settings” → “Apps” → “v2rayNG,” check battery and background data restrictions. Menu names vary by device. Removing restrictions still doesn't guarantee background tasks will run to the minute.
- Verify the result: After the next scheduled interval, check the update time, logs, and node count. If no update record is available, test the network route with a manual update. An unchanged node order alone doesn't mean the update failed.
Common questions: what to check when an update succeeds but nothing changes
The update says it succeeded. Why do I still see the same nodes?
The server may not have published a new list. Check the selected group and update log, then compare the total node count. “0 added” doesn't necessarily mean failure. Check the search box, group filters, and sorting in case new entries are hidden.
All my old nodes are down, and I can only fetch the subscription through a proxy. What should I do?
Ask the provider for a subscription endpoint that works directly or a temporary working configuration. Keep the original group instead of repeatedly deleting and recreating it. Enabling “Update Through Proxy” can't establish a connection if no outbound route is available.
I changed the subscription URL. Why does auto-update still fail?
Reopen the group editor and confirm the new URL was saved. Check for an older group with the same name. Update the new group manually first; once it works, verify that group's own auto-update interval.
After updating, latency tests work but websites won't load. Is the subscription broken?
A latency test only confirms that part of the connection works along the test route. Check the active server and system proxy or VPN status, then troubleshoot routing and DNS. If the subscription parsed successfully, investigate the connection instead of repeatedly downloading the same list.
What to record after troubleshooting
Keep the minimum information needed to reproduce the issue. When it happens again, comparing these notes is more effective than changing every setting from scratch. A subscription URL is an access credential: record only a redacted domain, never the full token.
- Client name and version, operating system version, and the exact times the issue began and was resolved.
- The update method that worked: direct or through a proxy. If proxied, note the active configuration used.
- The last error keyword, HTTP status code, fix applied, and total node count after the update.
- Each group's auto-update switch, interval and unit, plus any device sleep or background restrictions.
Once things are stable, keep only the update frequency you need. If multiple devices share a subscription, stagger their update times where possible. If the provider resets your subscription credentials, update the URL on each device. For client installation and basic proxy setup, see the site's Getting Started guides.