Search Issue Tracker
Fixed
Fixed in 1.8.0
Votes
2
Found in [Package]
1.7.7
Issue ID
UVSB-2332
Regression
No
Script graph cannot be opened and "Failed to deserialize behaviour." error is logged after deleting a custom node Script
Reproduction steps:
1. Open the user's attached project "Embeded Graph Corruption Repro.zip"
2. Open "SampleScene"
3. Select the "Embeded Graph Test" GameObject in the Hierarchy window
4. Click "Edit Graph" in the Inspector window
5. Delete DeleteMeUnit.cs from the Assets folder
Expected result: The "Delete Me Unit" node disappears
Actual result: The graph cannot be opened, an error is thrown:
"Failed to deserialize behaviour.
System.Runtime.Serialization.SerializationException: Deserialization into 'Unity.VisualScripting.FlowMachine' failed. ---> System.InvalidOperationException: Internal Deserialization Error - Object definition has not been encountered for object with id=14; have you reordered or modified the serialized data? If this is an issue with an unmodified Full Serializer implementation and unmodified serialization data, please report an issue with an included test case."
Reproducible with: 1.7.6 (2021.2.18f1), 1.7.7 (2022.1.0b14), 1.8.0-pre.1 (2022.2.0b9)
Could not test with: 2019.4.37f1, 2020.3.32f1 (Visual Scripting package not available)
Note:
1. The error will be thrown if the source of the Script Machine is "Graph" but the graph will be openable
2. "Delete Me Unit\!" needs to be connected to another unit
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Containers' height doesn't expand when text wraps
- Variable is set to a different value from the selected enum value in the Editor dropdown
- TreeView Child display toggle styling becomes reversed when clicking and dragging it
- Null is returned when using FocusOutEvent.relatedTarget
- Unity_BaseInstanceID is always zero when rendering multiple meshes and instancing with the same buffer
Resolution Note (fix version 1.8.0):
Nodes with missing types can now be deserialized into dummy ones to inform the user of the issue.