[1444] UdonBehavior crash only in beta
complete
lackofbindings
The video player in my world does not work when on the latest beta. Multiple UdonBehaviours crash immediately at world init. I am not knowledgeable enough to decipher this, but it seems to be failing at a fairly basic built-in function relating to setting text in UI. This does not occur on live, nor the previous beta.
I use the VizVid player https://github.com/JLChnToZ/VVMW
2024.04.18 22:15:30 Error - [UdonBehaviour] An exception occurred during Udon execution, this UdonBehaviour will be halted.
VRC.Udon.VM.UdonVMException: An exception occurred in an UdonVM, execution will be halted. ---> VRC.Udon.VM.UdonVMException: An exception occurred during EXTERN to 'UnityEngineUIText.__set_text__SystemString__SystemVoid'. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at UnityEngine.UI.Text.set_text (System.String value) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.Wrapper.Modules.ExternUnityEngineUIText.__set_text__SystemString__SystemVoid (VRC.Udon.Common.Interfaces.IUdonHeap heap, System.Span`1[T] parameterAddresses) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.VM.UdonVM.Interpret () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.String eventName) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.VM.UdonVM.Interpret () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunEvent (System.String eventName) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.ManagedUpdate () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonManager.Update () [0x00000] in <00000000000000000000000000000000>:0
--- End of inner exception stack trace ---
at VRC.Udon.VM.UdonVM.Interpret () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.String eventName) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.VM.UdonVM.Interpret () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunEvent (System.String eventName) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.ManagedUpdate () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonManager.Update () [0x00000] in <00000000000000000000000000000000>:0
--- End of inner exception stack trace ---
at VRC.Udon.VM.UdonVM.Interpret () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.String eventName) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.VM.UdonVM.Interpret () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunProgram (System.UInt32 entryPoint) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.RunEvent (System.String eventName) [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonBehaviour.ManagedUpdate () [0x00000] in <00000000000000000000000000000000>:0
at VRC.Udon.UdonManager.Update () [0x00000] in <00000000000000000000000000000000>:0
Log In
StormRel
complete
_
_tau_
Merged in a post:
(Build 1444) UIText "SetText" for UIText without a symbol in the string will crash the Udonbehaviour in Graph
xCirrex
Make a UIText (TextMeshPRO works fine) and set the text in graph with nothing in the string and it will crash in the open beta client. This does not happen in the current live client.
_
_tau_
xCirrex I'm _pretty_ sure this is a duplicate of this: https://feedback.vrchat.com/open-beta/p/1444-udonbehavior-crash-only-in-beta and was fixed in the next build. Before I close this, can you confirm if this issue still occurs on the current live version?
xCirrex
_tau_ Everything works fine now regarding this. Thanks!
_
_tau_
Merged in a post:
[1444] StringLoader OnStringLoadError result.Result is Null
Swingly
When a string fails to load, OnStringLoadError's result.Result is now Null.
If any world uses the error result it will now receive Null.
In my case I wasn't null checking when putting it into a text field so the UdonBehaviour crashed entirely.
Vistanz
After a bit investigation, it seems like the latest beta version removes text components contained in a nested VRCUiShape component, and then the UDON failed to reference the former one and halted.
Vistanz
Dig in more, I think the problem doesn't related to VRCUiShape component, it is quite weird that all 3 UI variants of VizVid not functioning on OB version, and one of those 3 didn't have a nested VRCUiShape hierarchy structure, so I think there is something else make that text component "disappeared".
Vistanz
I found the root cause by changing the input and some logging!
Normally,
text
property in text fields are safe to set null strings, but I think you guys injected some code to it (for the max string limit fix, I think) that assume the string provided never null, that's why it crashes when null is provided.You can see how original implementation handles input text: https://github.com/Unity-Technologies/uGUI/blob/2019.1/UnityEngine.UI/UI/Core/Text.cs#L205-L211
I can get around this by falling back null to empty strings before updating text, but this should be fixed in VRChat side as well.
This post was marked as
available in future release
StormRel
tracked