Environment:
  • Unity version: 2022.3.22f1
  • VRChat SDK Worlds: 3.10.3
  • VRChat SDK Base: 3.10.3
  • UdonSharp included with SDK
  • Project uses Prefab Mode / PrefabStage with UdonSharpBehaviour components
  • YamaPlayer package present: net.kwxxx.yama-stream 1.5.18
Observed:
When opening or editing prefabs containing UdonSharpBehaviour components in Prefab Mode, Unity logs repeated ArgumentNullException errors from OdinSerializer UnitySerializationUtility.
Error:
ArgumentNullException: Value cannot be null.
Parameter name: unityObject
VRC.Udon.Serialization.OdinSerializer.UnitySerializationUtility.SerializeUnityObject(...)
UdonSharp.UdonSharpBehaviour.UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize()
and similarly:
UnitySerializationUtility.DeserializeUnityObject(...)
UdonSharp.UdonSharpBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()
Trigger:
  • Open a prefab containing UdonSharpBehaviour in Prefab Mode
  • Move a child object or let PrefabStage autosave run
  • Errors repeat, sometimes dozens/hundreds per save
Expected:
PrefabStage autosave should not throw if a Unity pseudo-null UdonSharpBehaviour or serialized target is encountered. It should skip invalid objects or handle UnityEngine.Object pseudo-null safely.
Additional finding:
For diagnosis only, I temporarily tested a local guard around the SDK serialization path. The test indicated that the affected object was not a normal C# null reference, but behaved as null through Unity's overloaded UnityEngine.Object null comparison. With that guard in place, the exception stopped.
I am not using this as a permanent workaround and do not intend to publish content with a modified SDK. This observation is included only to help identify the likely failure path.
Additional observation:
I have encountered this issue twice. In both cases, once the issue started occurring in the project, checking out older repository commits did not reliably make the issue disappear. This suggests that the trigger may involve Unity Library/cache/generated SDK state or some project-local serialized state, not only the currently checked out asset files.