Status and Avatar Changes Are Extremely Unreliable
VRChat's WebSocket and REST API have several reliability problems, but there are two issues in particular that are extremely frustrating.
  1. Status and Status Text Changes
When using the auth endpoint to change your status or status text, the change is correctly reflected on VRChat.com and in clients such as VRCX and VRCN. However, the change often does not properly update in game.
For example, you can change your status from "Join Me" to "Do Not Disturb" through VRChat.com, VRCX, or VRCN. The website and external clients will immediately show "Do Not Disturb", but even several minutes later your friends in game may still see you as "Join Me". They may even still be able to generate an invite to your instance despite your account supposedly being set to "Do Not Disturb".
This makes the status shown on VRChat.com, VRCX, and VRCN extremely unreliable because you cannot trust that the status you selected is actually being used in game.
  1. Avatar Changes
Avatar changes through the API have a similar problem. VRChat provides endpoints that allow users to change their avatar through VRChat.com, and these same endpoints are also used by clients such as VRCX and VRCN.
However, changing an avatar through these endpoints feels like a coin flip. Sometimes the avatar changes immediately, sometimes nothing happens, and sometimes you select an avatar and several hours later your avatar suddenly changes to the avatar you selected hours earlier.
  1. Expected Behavior
If a user changes their status, status text, or avatar through an official VRChat endpoint, the change should reliably propagate to the game and all connected services.
Especially for statuses, this is essential functionality. If I change my status to "Do Not Disturb", then update the damn status everywhere. It should not matter whether I changed it in game, on VRChat.com, through VRCX, through VRCN, or through another application using the official API.