SDK Bug & Feature Requests

Please check out the following rules and use the provided template when posting a bug report! Off-topic posts will be deleted.http://bit.ly/vrchat-bug-reports
String conversion errors from RuntimeAssembly.GetCodeBase with Japanese locale and/or paths
I've been getting reports from multiple Japanese users that they are getting the following stacktrace, breaking the build window in the Avatar SDK: ExecutionEngineException: String conversion error: Illegal byte sequence encounted in the input. System.Reflection.RuntimeAssembly.GetCodeBase (System.Reflection.Assembly a, System.Boolean escaped) (at <27124aa0e30a41659b903b822b959bc7>:0) System.Reflection.RuntimeAssembly.get_CodeBase () (at <27124aa0e30a41659b903b822b959bc7>:0) System.Reflection.AssemblyName.Create (System.Reflection.Assembly assembly, System.Boolean fillCodebase) (at <27124aa0e30a41659b903b822b959bc7>:0) System.Reflection.RuntimeAssembly.GetName (System.Boolean copiedName) (at <27124aa0e30a41659b903b822b959bc7>:0) System.Reflection.Assembly.GetName () (at <27124aa0e30a41659b903b822b959bc7>:0) VRC.Tools.get_HasTypeVRCApplication () (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Tools.get_isClient () (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Core.API.PopulateHTTPRequestHeaders (BestHTTP.HTTPRequest request) (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Core.API.SendRequestInternal (System.String endpoint, BestHTTP.HTTPMethods method, VRC.Core.ApiContainer responseContainer, System.Collections.Generic.IReadOnlyDictionary`2[TKey,TValue] requestParams, System.Boolean authenticationRequired, System.Boolean disableCache, System.Single cacheLifetime, System.Int32 retryCount, VRC.Core.API+CredentialsBundle credentials, BestHTTP.Forms.HTTPFormBase formData, System.Boolean disableLog, VRC.Core.UpdateDelegator+JobPriority priority) (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Core.API+<>c__DisplayClass49_0.<SendRequest>g__PerformRequest|0 () (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Core.API.SendRequest (System.String endpoint, BestHTTP.HTTPMethods method, VRC.Core.ApiContainer responseContainer, System.Collections.Generic.IReadOnlyDictionary`2[TKey,TValue] requestParams, System.Boolean authenticationRequired, System.Boolean disableCache, System.Single cacheLifetime, System.Int32 retryCount, VRC.Core.API+CredentialsBundle credentials, BestHTTP.Forms.HTTPFormBase formData, System.Boolean disableLog, VRC.Core.UpdateDelegator+JobPriority priority) (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Core.RemoteConfig.FetchConfig (System.Action onFetched, System.Action onError) (at <de2b87b788984fa39f4913eb18084fa8>:0) VRC.Core.BaseConfig.Init (System.Action onInit, System.Action onError, System.Boolean reload) (at <de2b87b788984fa39f4913eb18084fa8>:0) VRCSdkControlPanel.ShowControlPanel () (at ./Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/ControlPanel/VRCSdkControlPanel.cs:25) Some folks claim that this starts when they install Modular Avatar, and persists after removing it. It may be related to https://github.com/mono/mono/issues/20968 - calling Assembly.GetName appears to be unsafe on the version of mono in Unity 2022.3.22f1. This bug appears to be very sensitive to load order. In particular, it will occur when: Your PC nonunicode locale is Japanese, and there is Japanese text in the project path An assembly listed before Assembly-CSharp in the AppDomain.CurrentDomain.GetAssemblies() list is one which throws an exception from assembly.Name . This can be any assembly that is dynamically constructed (notably, HarmonySharedState assemblies and some "external tools" bindings, such as the Rider bindings, will trigger this) I would suggest adding exception handling to this isClient check, and skipping assemblies that throw exceptions from GetName. Or, check for the presence of VRCApplication using Assembly.GetType first, and then check for whether this is Assembly-CSharp only if you find that class.
2
validator out of Range
I have been having this problem all night where the validator on the SDK isnt functioning at all. Errors listed below Error 1 IndexOutOfRangeException: Index was outside the bounds of the array. VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder.ValidateFeatures (VRC.SDKBase.VRC_AvatarDescriptor avatar, UnityEngine.Animator anim, VRC.SDKBase.Validation.Performance.Stats.AvatarPerformanceStats perfStats) (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:640) VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder.OnGUIAvatarCheck (VRC.SDKBase.VRC_AvatarDescriptor avatar) (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:341) VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder.ShowBuilder () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:154) VRCSdkControlPanel+<>c__DisplayClass184_0.<ShowBuilders>b__4 () (at ./Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/ControlPanel/VRCSdkControlPanelBuilder.cs:756) UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) Error 2 System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.IMGUIContainer.DoIMGUIRepaint () (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.UIR.RenderChainCommand.ExecuteNonDrawMesh (UnityEngine.UIElements.UIR.DrawParams drawParams, System.Single pixelsPerPoint, System.Exception& immediateException) (at <332857d8803a4878904bcf8f9581ec33>:0) Rethrow as ImmediateModeException UnityEngine.UIElements.UIR.RenderChain.Render () (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.UIRRepaintUpdater.Update () (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.VisualTreeUpdater.UpdateVisualTreePhase (UnityEngine.UIElements.VisualTreeUpdatePhase phase) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.Panel.UpdateForRepaint () (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.Panel.Repaint (UnityEngine.Event e) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <332857d8803a4878904bcf8f9581ec33>:0) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <74d6aaa3aedf4a279751914e170fef65>:0) I have tried to reimport the SDK on top and replace it multiple times I am unsure of the issue and yes I deleted the SDK from the project and then attempted to frankenstein another projects SDK to replace it and it worked with everything fine but did not fix the issue.
0
Load More