VRChat on Desktop (non-VR) intermittently hard-freezes for long periods (30s–several minutes), then recovers without crashing. Freezes also occur reliably on exit. During freezes, the Windows Volume Mixer shows no active applications, then repopulates when VRChat recovers. After recovery, logs show large batches of analytics events flushing (e.g. repeated AmplitudeAPI: upload payload size too large warnings), suggesting events accumulated while the main thread was stalled.
This appears to be a Unity main-thread stall on a blocking Windows system call, not an audio routing issue or crash.
Environment
-Desktop mode only (no SteamVR, no headset connected)
-Windows 11, desktop PC
-Current VRChat live build (issue began after a recent update)
Repro Steps
-Launch VRChat in Desktop mode
-Join any world
-Wait 10-30s or attempt to exit VRChat
-Observe hard freeze (UI/rendering fully stops)
-App eventually recovers on its own (or requires force-close if exiting), but then refreezes after another 15s
Observed Behavior
-Complete freeze (no “Not Responding” dialog)
-Windows Volume Mixer shows no apps during freeze
-Voicemeeter show audio correctly from other applications throughout, and only VRChat freezes not the rest of the PC
-VRChat later resumes and flushes many analytics events
-Freezes happen while idle and on exit
What Has Been Ruled Out
-Audio routing/drivers (Voicemeeter, VB-Cable, Focusrite, Realtek) --> tried every combination of uninstalls and disables known to man
-Audio enhancements / Sonic / Nahimic / A-Volute (removed at driver-store level)
-Windows Audio service (restarts cleanly but does not unfreeze VRChat)
-VR devices (since it happens without them or Virtual Desktop even around)
Notes
-Audio reinitialization and analytics warnings appear to be secondary effects after recovery, not the trigger. The empty Volume Mixer during freezes suggests VRChat never completes session registration while stalled.
-This crash was consistent on the beta branch too, and has been happening since about mid November so it's not just this build.
Sorry for using AI for this summary, but I've been troubleshooting this for 5 hours this evening, and cumulatively something like 25 hours - plus all the time I've wasted with it not working so I'm just too exhausted to write it all up by hand.
Sometimes the bug just won't occur, or will occur after a totally random delay (can be hours), and sometimes it will recover after a freeze and be fine. No idea.
Send help.