Photon peer stuck in "Disconnecting" state when login-to-join takes >60s — all subsequent join attempts fail until process restart
needs more information
dekapu_debug
Summary
When VRChat is launched with a vrchat://launch?id=... instance URL and the login sequence (API calls + Photon region discovery) takes longer than ~60 seconds to complete, the Photon peer ends up in the Disconnecting state at the moment the client attempts the region switch. From that state, the client never issues a connect: every subsequent join attempt logs Switching to network region xx (current state: Disconnecting) and times out 30s later with Failed to connect to network region, without ever logging Connecting to realtime network. The only recovery is killing the process.
Evidence (from 90 days of logs across 5 machines, 271 launches)
Login-to-first-region-switch latency is perfectly bimodal: every successful session was 2–13s; every failed session was 65–110s. Zero observations in between.
The first Switching to network region line predicts the outcome with no exceptions: current state: ConnectedToNameServer → connected (235/235 sessions); current state: Disconnecting → failed (20/21 sessions; the single recovery happened only because a full re-login re-established the NameServer connection).
Once stuck, in-app retries never recover. One session logged 88 consecutive Switching ... (current state: Disconnecting) attempts, all failing identically.
On failure the client also triggers TryAlternateInstance and silently redirects to a different instance (observed: requested group(...)~region(jp) → redirected to friends(...)~region(us)), which is problematic for anyone trying to reach a specific instance.
What appears to happen
After Got best network region, the client begins tearing down the NameServer connection. If the join flow (Destination set → Requesting join token → region switch) arrives while the peer is still mid-teardown (Disconnecting), the region-switch code appears to wait for a terminal state that never arrives — it has no handling for the Disconnecting case — and times out. Nothing ever calls connect again on that peer.
Repro (probabilistic)
Launch VRChat.exe "vrchat://launch?id=<world:instance>" --no-vr on a low-end machine (observed on Intel N150 mini PCs; never reproduced on high-end machines on the same LAN in 183 launches) or otherwise cause the login sequence to take >60s.
Observe the first Switching to network region line. If it shows current state: Disconnecting, the session is unrecoverable.
Launching without an instance URL avoids the failure in our data (7/7 clean launches), presumably because the client goes straight to Home without waiting on Destination set, and after the first successful join the peer starts subsequent switches from Disconnected, which works fine.
Suggested fix
In the region-switch path, treat Disconnecting explicitly: either wait for the transition to Disconnected and then proceed to connect, or force-reset the peer state and reconnect (the same workaround Photon suggests for peers stuck in Disconnecting). Alternatively, cap the retry loop and surface a fatal error instead of retrying forever.
Environment
VRChat 2026.3.1-1886, Windows 11, desktop mode (--no-vr), Steam install / VRChat account login.
Log In
_
_tau_
updated the status to
needs more information
Can you see if this still happens on the latest
open-beta
build, version 1897 or higher?dekapu_debug
_tau_
Yes — reproduced on 1897.
VRChat Build: 2026.3.2-1897-070362ad4d-Release
Timeline from that session:
20:25:45 User Authenticated
20:26:53 [Behaviour] Switching to network region jp (current state: Disconnecting)
20:27:27 [Behaviour] Failed to connect to region, status was: Disconnecting
20:27:27 Resetting game flow because "Failed to connect to network region"
20:27:29 [Behaviour] Switching to network region jp (current state: Disconnecting)
Login-to-first-region-switch was 68s, matching the failure band. The first switch shows Disconnecting, and it fails 34s later. Connecting to realtime network never appears anywhere in the log, and the retry after the flow reset starts from Disconnecting again.
One note on the environment line: Steam wasn't running for this session (SteamApi_Init returned false), so Steam Beta Branch: unknown is logged and the build string ends in -Release. The build number itself is 1897.
Also worth flagging: config region was Selected network region: Japan, but Got best network region: Europe fired right before the switch to jp.
Full log attached.
_
_tau_
dekapu_debug I'm not sure I see a VRChat issue in this one anymore. It appears that your anti-cheat failed to connect, and then the realtime network connection attempt simply failed twice. This might be down to your internet connection or routing being too unstable. I'd recommend trying Cloudflare Warp, or contacting user support at https://vrch.at/support.
dekapu_debug
_tau_
tau Thanks for looking, but I don't think anti-cheat is what failed — the 1897 log shows it succeeding.
20:25:45 [EOSManager] Attempting to login to EOS.
20:25:45 [Behaviour] Locating best region
20:26:48 ... HttpStatus=[401], ErrorCode=[...auth.external.invalid_token]
20:26:48 [EOSManager] EOS Login Failed. ResultCode: 7000
20:26:49 [EOSManager] EOS Login Succeeded.
20:26:49 [EOSManager] EOS LoginUser took '0.74'.
20:26:52 [EOSManager] EOS LoginUser took '67.20'.
20:26:53 [Behaviour] Switching to network region jp (current state: Disconnecting)
20:26:53 [EOSManager] AntiCheat Session Begin: Success
The 401 is an EOSAuth TokenGrant failure, not anti-cheat, and it's transient: the retry succeeds in 0.74s and AntiCheat Session Begin: Success is logged at the moment of the switch. EOS Login Failed. ResultCode: 7000 is the only [EOSManager] error line in the file — EOS was fully logged in 4 seconds before the switch.
On "the connection attempt failed twice": neither attempt got that far. Connecting to realtime network never appears. Both start from the same state:
20:26:53 Switching to network region jp (current state: Disconnecting)
20:27:27 Failed to connect to region, status was: Disconnecting
20:27:27 Resetting game flow because "Failed to connect to network region"
20:27:29 Switching to network region jp (current state: Disconnecting)
The second is after a full flow reset and still begins from Disconnecting. Across all 21 failed sessions the state at the first switch is Disconnecting every time — never Disconnected, never a mix.
Also reproduced on 1899 (log attached), same machine class and launch URL:
23:35:00 EOS Login Failed. ResultCode: 7000 (401, same code)
23:35:02 EOS Login Succeeded / LoginUser took '0.59'
23:35:04 EOS LoginUser took '67.50'
23:35:04 Switching to network region jp (current state: Disconnecting)
23:35:04 AntiCheat Session Begin: Success
23:35:42 Failed to connect to region, status was: Disconnecting
23:35:44 Switching to network region jp (current state: Disconnecting)
Both sessions: login-to-first-switch 68s, first EOS login 67.20s / 67.50s, retry 0.74s / 0.59s, anti-cheat Success, no Connecting to realtime network.
Happy to run any build or capture anything else that helps.
dekapu_debug