- changed status to open
Unexpected entry '' of type EndOfNode, when StartOfNode was expected. A value has likely been lost.
Seeing the error numerous times when starting a project in Unity 5.5.0f3. Likely due to a SerializedMonoBehaviour from the stack trace:
Unexpected entry '' of type EndOfNode, when StartOfNode was expected. A value has likely been lost.
UnityEngine.Debug:LogError(Object)
Sirenix.Serialization.CustomLogger:LogError(String) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization.Config/CustomLogger.cs:53)
Sirenix.Serialization.DebugContext:LogError(String) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Misc/SerializationConfig.cs:193)
Sirenix.Serialization.ComplexTypeSerializer`1:ReadValue(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Serializers/ComplexTypeSerializer.cs:53)
Sirenix.Serialization.NullableFormatter`1:DeserializeImplementation(Nullable`1&, IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Formatters/NullableFormatter.cs:38)
Sirenix.Serialization.BaseFormatter`1:Deserialize(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Formatters/BaseFormatter.cs:171)
Sirenix.Serialization.ComplexTypeSerializer`1:ReadValue(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Serializers/ComplexTypeSerializer.cs:103)
System.Object:Dynamic_Void ReadDataEntry(Conditional ByRef, System.String, EntryType, IDataReader)(Conditional&, String, EntryType, IDataReader, Dictionary`2)
Sirenix.Serialization.Emitted.ConditionalFormatter:ReadDataEntry(Conditional&, String, EntryType, IDataReader)
Sirenix.Serialization.EasyBaseFormatter`1:DeserializeImplementation(T&, IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Formatters/EasyBaseFormatter.cs:28)
Sirenix.Serialization.BaseFormatter`1:Deserialize(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Formatters/BaseFormatter.cs:171)
Sirenix.Serialization.ComplexTypeSerializer`1:ReadValue(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Serializers/ComplexTypeSerializer.cs:307)
Sirenix.Serialization.ArrayFormatter`1:DeserializeImplementation(Conditional[]&, IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Formatters/ArrayFormatter.cs:59)
Sirenix.Serialization.BaseFormatter`1:Deserialize(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Formatters/BaseFormatter.cs:171)
Sirenix.Serialization.ComplexTypeSerializer`1:ReadValue(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Serializers/ComplexTypeSerializer.cs:307)
Sirenix.Serialization.Serializer`1:ReadValueWeak(IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Serializers/Serializer.cs:176)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, IDataReader) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:1061)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObjectInEditor(Object, SerializationData&, DeserializationContext, Boolean) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:894)
Sirenix.Serialization.UnitySerializationUtility:DeserializeUnityObject(Object, SerializationData&, DeserializationContext) (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Utilities/UnitySerializationUtility.cs:742)
Sirenix.OdinInspector.SerializedMonoBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize() (at C:/Users/Bjarke/Desktop/Projects/Sirenix Development Framework/Sirenix Solution/Sirenix.Serialization/Unity Integration/SerializedMonoBehaviour.cs:26)
I can provide more details (e.g. my SerializedMonoBehaviour class) if necessary, but it's pretty complex. The error started appearing as soon as I upgraded from v0.9.0.5.
Comments (4)
-
-
I've so far been unable to replicate this error - could you confirm that the error still happens if you change and then save the scene in which it happens - or change the assets and then save the project (IE, caused the data to be "saved" properly)?
-
reporter Strangely, I can no longer reproduce the error myself. I definitely changed and re-saved the scene in between now and the error, so perhaps it was just an issue with upgrading versions that fixed after it reserialized.
-
- changed status to resolved
After some consideration, the serialization error that occurred here has been downgraded to a warning instead, as the serialization can easily recover from this case that only affects a single serialized value, and it will happen sometimes when data types change.
- Log in to comment
This looks like an issue with deserialization of nullables. Unity's version of mono had a runtime error that resulted in a crash with these, so we had to do some funky things to get around that. We'll have a look at this promptly - thanks for reporting!