[5.7] Crash with add deformer node in control rig, multiple characters in level sequence

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)

Steps to Reproduce
create a lattice deformer graph

create control rig graph for a skeletal mesh

in that control rig graph, add the add deformer node

now that the control rig can control the deformer

spawn 2 or more characters to level sequence, and apply the control rig track on the binding

save the level sequence, engine crash with error message:

fatal error!

\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp [Line:451] Illegal call to StaticFindObjectFast() while serializing object data!

Hey there,

Can you also attach a full callstack/crash report to this case as well?

Dustin

There was a change to address a similar issue; I’d like you to try to integrate it. In mainline perforce, it would be CL: 47231307

Github: https://github.com/EpicGames/UnrealEngine/commit/9cb5835ed24d9876f7636a00fe3e48df300aaf4f

Dustin

crash report is attached, Unreal crashed when having 3 viewports opened

Thanks! we integrated this change list and it seemed to fix our crash issue, will report again if we run into any more crashes, thank you!