Bug Reports

One bug report per post. Off-topic posts will be closed. Only submit bug reports for builds currently marked as "public". For isolated issues or customer support visit help.vrchat.com.
POST /calendar/{groupId}/event intermittently returns 500 "Application error"
Creating a group calendar event fails with a 500 on 10 of 19 calls since 2026-10-11. The request bodies differ only in title, description and times, so the same request succeeds or fails at random. We hit this in the test suite for the community API specification . Three workflows create an event in a group they created a second earlier, and nothing else touches the group in between: group-calendar-lifecycle calendar-event-lifecycle update-instance-calendar-link-lifecycle CI runs with failures: 10-11 15:19 , 10-12 14:07 , 10-12 15:51 , 10-12 16:37 , 10-12 16:46 Request POST /api/1/calendar/{groupId}/event {"accessType":"group","category":"other","description":"Created by the test suite","title":"Test","sendCreationNotification":false,"startsAt":"2026-10-12T17:47:40.171Z","endsAt":"2026-10-12T18:47:40.249Z"} Response ( 500 ) {"error":{"message":"Application error","status_code":500}} Every call, failed or successful, reached build master-build-2026-10-09-pill-j-spearpide in the blue group. Failed (UTC, x-vrc-request-id) 2026-10-11 15:20:58 mv3z089tgsuw9nzz 2026-10-12 14:08:57 mv5bvgc4nuawh5dm 2026-10-12 14:10:17 mv5bx5v6d0z76z52 2026-10-12 15:51:53 mv5fjtszv0x2g0th 2026-10-12 15:53:00 mv5fl9h6ngz2zmri 2026-10-12 16:47:36 mv5hjgyovnpclfeo 2026-10-12 16:47:42 mv5hjll1pcaioy4c 2026-10-12 17:08:18 mv5ia3v5lfpuol7i 2026-10-12 17:08:25 mv5ia99065rllitv 2026-10-12 17:09:33 mv5ibpsv2bdb9mmw Succeeded (UTC, x-vrc-request-id) 2026-10-11 15:19:54 mv3yyugez7oprqpu 2026-10-11 15:20:03 mv3yz131x21o6lk5 2026-10-11 15:20:58 mv3z07nhrbz7n8up 2026-10-12 14:08:41 mv5bv4pavr7esmdy 2026-10-12 14:10:14 mv5bx48cht0bpi59 2026-10-12 14:10:15 mv5bx4rqf8bnxqc4 2026-10-12 15:51:59 mv5fjyt87luswyi7 2026-10-12 15:52:58 mv5fl7o3qzjcrdi7 2026-10-12 15:52:58 mv5fl8d9budkxp4g
1
·
tracked
OSC/OSCQuery MuteSelf state does not reflect Hold-to-Talk microphone behavior
When using VRChat's Hold-to-Talk (Push-to-Talk) microphone mode, the OSC/OSCQuery MuteSelf parameter does not appear to reliably reflect whether the microphone is currently transmitting audio. I encountered this behavior while using two independent VRChat speech transcription and translation applications, VRCS and VRCT , both of which support synchronization with VRChat's microphone mute state. Other microphone modes, including Always On, Always Off, and Toggle, appear to work as expected. The problem occurs specifically with Hold-to-Talk. ### Steps to Reproduce Launch VRChat on Windows in PCVR mode and enable OSC. Configure an external application that monitors /avatar/parameters/MuteSelf via OSC/OSCQuery. Set VRChat's microphone behavior to Hold-to-Talk. Speak without holding the Push-to-Talk button. Observe the mute state reported to the external application. Press and release Push-to-Talk and observe whether the reported state changes accordingly. Repeat the test using Always On, Always Off, and Toggle microphone modes. Compare the behavior using VRCS and VRCT. ### Expected Behavior External applications should be able to determine whether the microphone is currently allowed to transmit audio. Ideally, MuteSelf would reflect the effective microphone mute state, including Hold-to-Talk behavior. Alternatively, if MuteSelf is intentionally designed to represent only the persistent mute state, VRChat should provide a separate read-only OSC/OSCQuery parameter indicating the effective microphone transmission or Push-to-Talk state. ### Actual Behavior With Hold-to-Talk enabled, external applications may treat the microphone as unmuted even while the Push-to-Talk button is not being held. As a result, speech transcription and translation applications can automatically publish microphone transcriptions through the VRChat OSC Chatbox, even though the user's voice is not being transmitted through VRChat voice chat. This behavior was reproduced with both VRCS and VRCT. Other microphone modes appeared to work correctly. ### Impact This is potentially a privacy issue for users of speech-to-text, translation, accessibility, and subtitle applications. Users may reasonably expect speech spoken while Push-to-Talk is released to remain private. However, if external applications rely on MuteSelf for synchronization, those conversations can unintentionally appear in the public Chatbox. ### Environment Platform: Windows PCVR Headset: Meta Quest 3 Microphone behavior: Hold-to-Talk OSC/OSCQuery: Enabled Tested applications: VRCS and VRCT VRChat build: [To be filled in] PCVR streaming software: [To be filled in] ### Additional Notes I understand that MuteSelf may intentionally represent the persistent mute setting rather than the effective Push-to-Talk transmission state. If so, I would appreciate clarification of the intended behavior and consideration of a dedicated read-only OSC/OSCQuery parameter exposing whether microphone transmission is currently active. Such a parameter would allow third-party subtitle and translation tools to implement reliable Push-to-Talk-aware privacy controls.
1
·
tracked
[Worlds SDK 3.10.5] IndexOutOfRangeException in CreateValidationsGUI when switching scenes with the Control Panel open breaks the panel
Steps to reproduce: Open the VRChat SDK Control Panel on the Builder tab. Have a scene open with no VRC_SceneDescriptor. Load a different scene that does have a VRC_SceneDescriptor (single, not additive). Expected: the panel refreshes and shows the new world. Actual: IndexOutOfRangeException at VRCSdkControlPanelWorldBuilder.cs:194, called from OnSceneChanged (line 113) -> RunValidationsHandler -> RunValidations (VRCSdkControlPanelBuilder.cs:883). After that the panel stays broken. More errors follow: "Assertion failed", a NullReferenceException in the DetachFromPanelEvent callback in ShowBuilders (VRCSdkControlPanelBuilder.cs:848), and a NullReferenceException in Modal.SetAnchor (Modal.cs:191) from ThumbnailBlock / CreateContentInfoGUI (VRCSdkControlPanelWorldBuilder.cs:1364). The NullReferenceException at line 848 also fires when the panel is closed. Closing and reopening the panel fixes it. Cause (from the SDK source): In CreateValidationsGUI: if (_scenes[0] == null) { FindScenes(); } if (_scenes[0] == null) { root.Clear(); return; } // line 194 FindScenes() sets _scenes to the result of Tools.FindSceneObjectsOfTypeAll<VRC_SceneDescriptor>(). When the scene being changed to has no descriptor yet (or the old scene has none), that array is empty, and _scenes[0] throws instead of returning null. The guard should be something like: if (_scenes == null || _scenes.Length == 0 || _scenes[0] == null) The DetachFromPanelEvent handler at VRCSdkControlPanelBuilder.cs:848 then dereferences _selectedBuilder (or a related field) without a null check, so tearing down the half-built UI throws as well. Stack trace (first error): IndexOutOfRangeException: Index was outside the bounds of the array. VRC.SDK3.Editor.VRCSdkControlPanelWorldBuilder.CreateValidationsGUI (UnityEngine.UIElements.VisualElement root) (at ./Packages/com.vrchat.worlds/Editor/VRCSDK/SDK3/VRCSdkControlPanelWorldBuilder.cs:194) VRCSdkControlPanel.RunValidations () (at ./Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/ControlPanel/VRCSdkControlPanelBuilder.cs:883) VRCSdkControlPanel.RunValidationsHandler (System.Object sender, System.EventArgs e) (at ./Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/ControlPanel/VRCSdkControlPanelBuilder.cs:888) VRC.SDK3.Editor.VRCSdkControlPanelWorldBuilder.OnSceneChanged (UnityEngine.SceneManagement.Scene oldScene, UnityEngine.SceneManagement.Scene newScene) (at ./Packages/com.vrchat.worlds/Editor/VRCSDK/SDK3/VRCSdkControlPanelWorldBuilder.cs:113) UnityEditor.SceneManagement.EditorSceneManager.Internal_ActiveSceneChangedInEditor (...) Workaround: close the VRChat SDK Control Panel and reopen it from VRChat SDK > Show Control Panel.
1
·
tracked
Load More
→