Our studio has been using a new UE 5.7 feature in our pipeline—adding deformers within Control Rigs. We’ve encountered consistent crashes when saving, which typically occur when two or more Control Rigs containing Deformer node are present in the scene.
Crash error message:
\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp [Line:451] Illegal call to StaticFindObjectFast() while serializing object data!
This issue reproduces in both UE 5.7.1 and 5.7.2.
To fix the crash, we made modifications to the engine source code as a temporary workaround.
Based on our investigation, this appears to be a bug in the DeformerGraph plugin. There is object-creation logic that is triggered when opening Sequencer as well as during save operations. However, part of this logic calls a function that is not allowed during serialization. (illegal during saving)
Specifically, the function generates unique object names, which does not appear to be critical at save time. As a workaround, we replaced it with an alternative method that is safe to execute during the save process.
the function we edited is in this file
Engine/Plugins/Animation/DeformerGraph/Source/OptimusCore/Private/OptimusDeformer.cpp[on line 4069]
A StaticFindObjectFast crash occurs when this function is called on save:
We want to report this crash so someone from the Unreal team can look into it and potentially implement a cleaner fix in a future release, at which point we can remove our custom modification.
const FName InstanceName = Optimus::GetUniqueNameForScope(InMeshComponent ,*(GetName() + TEXT("_Instance")));
dev57.log(192 KB)
UEMinidump.dmp(3.77 MB)
CrashContext.xml(134 KB)