Since a few updates ago, VRChat no longer handles external IP changes "gracefully". After the “Timed Out”/disconnected popup appears and is confirmed, instead of rejoining the instance (or at worst returning to the login screen), the client immediately dumps the user into the Error World. This forces a full application restart and re-login whenever the IP changes. This regression particularly impacts users on dynamic networks
Steps to Reproduce:
  1. Launch VRChat and authenticate.
  2. Join any world or instance.
  3. Change your external IP (e.g., switch to a mobile hotspot or renew DHCP lease).
  4. Wait for the “Timed Out”/disconnected popup to appear, then confirm it.
  5. Observe that you are sent to the Error World rather than rejoining or returning to login.
Expected Behavior:
  • Upon IP change, VRChat should show the “Timed Out” popup, allowing the user to confirm and reconnect.
  • After confirmation (or auto-confirm for our eepy users that don't want to wake up in the void), the user should rejoin the same instance, like it did previously, even if that means having a non working friends list and notifications.
  • If rejoin isn’t possible, at least return to the login screen without forcing a full restart.
Actual Behavior:
  • User is brought to the Error World.
  • A full client restart and credential re-entry are required to resume.