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

Package: Visual Scripting

-

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

  1. 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.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.