[Bug UE5.1.1] Animation blueprint "Property Access" nodes cause crash when used in child Animation Blueprint

Replication:

  • Create a regular Animation BP, ParentAnimTest, deriving from AnimInstance with an arbitrary skeleton - I chose SK_Mannequin.

  • Create a child AnimationBP deriving from the above. Add some variable to the child AnimationBP, and set it using a PropertyAccess node in the BlueprintThreadSafeUpdateAnimation function.

  • I created a Float, MyVar, and set it using a PropertyAccess of TryGetPawnOwner.GetActorLocation.X.

The engine will crash with a stack trace similar to:


Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\Templates\Casts.cpp] [Line: 10] Cast of nullptr to AnimBlueprintExtension_PropertyAccess failed

UnrealEditor_CoreUObject!CastLogError() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\Templates\Casts.cpp:11]
UnrealEditor_PropertyAccessNode!UK2Node_PropertyAccess::ExpandNode() [D:\build\++UE5\Sync\Engine\Plugins\Developer\PropertyAccessNode\Source\PropertyAccessNode\Private\K2Node_PropertyAccess.cpp:56]
UnrealEditor_KismetCompiler!FKismetCompilerContext::ExpansionStep() [D:\build\++UE5\Sync\Engine\Source\Editor\KismetCompiler\Private\KismetCompiler.cpp:3738]
UnrealEditor_KismetCompiler!FKismetCompilerContext::ProcessOneFunctionGraph() [D:\build\++UE5\Sync\Engine\Source\Editor\KismetCompiler\Private\KismetCompiler.cpp:4398]
UnrealEditor_AnimGraph!FAnimBlueprintCompilerContext::ProcessOneFunctionGraph() [D:\build\++UE5\Sync\Engine\Source\Editor\AnimGraph\Private\AnimBlueprintCompiler.cpp:1251]
UnrealEditor_KismetCompiler!FKismetCompilerContext::CreateFunctionList() [D:\build\++UE5\Sync\Engine\Source\Editor\KismetCompiler\Private\KismetCompiler.cpp:4542]
UnrealEditor_KismetCompiler!FKismetCompilerContext::CompileClassLayout() [D:\build\++UE5\Sync\Engine\Source\Editor\KismetCompiler\Private\KismetCompiler.cpp:4752]
UnrealEditor_Kismet!FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl() [D:\build\++UE5\Sync\Engine\Source\Editor\Kismet\Private\BlueprintCompilationManager.cpp:1363]
UnrealEditor_Kismet!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl() [D:\build\++UE5\Sync\Engine\Source\Editor\Kismet\Private\BlueprintCompilationManager.cpp:269]
UnrealEditor_Kismet!FBlueprintCompilationManager::CompileSynchronously() [D:\build\++UE5\Sync\Engine\Source\Editor\Kismet\Private\BlueprintCompilationManager.cpp:3294]
UnrealEditor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Kismet2\Kismet2.cpp:763]
UnrealEditor_Kismet!FBlueprintEditor::Compile() [D:\build\++UE5\Sync\Engine\Source\Editor\Kismet\Private\BlueprintEditor.cpp:4060]

Additionally
The same process of setting a variable using the PropertyAccess node works fine when done in an Animation BP that derives directly from AnimInstance.

If a user saves an anim blueprint with this issue (before compiling/crashing it), it will seemingly permanently corrupt it, since it becomes impossible to open or edit it through the editor.

Meet the same problem,have you got an way to fix it?

No, I never found a solution. As a workaround, I copied the ‘parent’ Animation Blueprint and modified the copy, instead of using an in inheritance hierarchy. Not pretty, but it worked at least.