Face_ControlBoard_CtrlRig crashes when MH is Spawnable in Sequencer

I recorded a couple clips of the crash I was struggling with all day.

I narrowed it down to the Face_ControlBoard_CtrlRig and simple_face_CtrlRig - but only when the character BP is converted to Spawnable.

The crash can be avoided by simply not converting the character BP to Spawnable. Beyond that fix, I’m not sure how to get back to a spawnable BP except to mute/delete the face boards.

Also of note, the Face_ControlBoard_CtrlRig does not appear as an option while “Filter Asset By Skeleton” is checked.

Basic specs are:

  • i9-13900K
  • 4090 (studio drivers)
  • 128gb ram
  • win11
  • all drivers up to date as of today (thanks to this crash)

Here is the crash log:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000098

UnrealEditor_Engine!TSet<TTuple<FName,int>,TDefaultMapHashableKeyFuncs<FName,int,0>,FDefaultSetAllocator>::FindIndexByHash<FName>() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\Set.h:899]
UnrealEditor_Engine!FBoneContainer::GetPoseBoneIndexForBoneName() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\BoneContainer.cpp:498]
UnrealEditor_Engine!FBoneReference::Initialize() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\BoneReference.cpp:15]
UnrealEditor_AnimGraphRuntime!FAnimNode_ModifyBone::InitializeBoneReferences() [D:\build\++UE5\Sync\Engine\Source\Runtime\AnimGraphRuntime\Private\BoneControllers\AnimNode_ModifyBone.cpp:123]
UnrealEditor_AnimGraphRuntime!FAnimNode_SkeletalControlBase::CacheBones_AnyThread() [D:\build\++UE5\Sync\Engine\Source\Runtime\AnimGraphRuntime\Private\BoneControllers\AnimNode_SkeletalControlBase.cpp:51]
UnrealEditor_Engine!FPoseLinkBase::CacheBones() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimNodeBase.cpp:291]
UnrealEditor_Engine!FPoseLinkBase::CacheBones() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimNodeBase.cpp:291]
UnrealEditor_Engine!FAnimInstanceProxy::CacheBones() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimInstanceProxy.cpp:1419]
UnrealEditor_Engine!FAnimInstanceProxy::UpdateAnimation_WithRoot() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimInstanceProxy.cpp:1274]
UnrealEditor_Engine!FAnimInstanceProxy::UpdateAnimation() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimInstanceProxy.cpp:1225]
UnrealEditor_Engine!UAnimInstance::ParallelUpdateAnimation() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimInstance.cpp:777]
UnrealEditor_Engine!UAnimInstance::UpdateAnimation() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\Animation\AnimInstance.cpp:632]
UnrealEditor_ControlRig!FAnimCustomInstanceHelper::UnbindFromSkeletalMeshComponent<UControlRigLayerInstance>() [D:\build\++UE5\Sync\Engine\Source\Runtime\AnimGraphRuntime\Public\AnimCustomInstanceHelper.h:271]
UnrealEditor_ControlRig!`FControlRigSkeletalMeshComponentBindingTokenProducer::CacheExistingState'::`2'::FToken::RestoreState() [D:\build\++UE5\Sync\Engine\Plugins\Animation\ControlRig\Source\ControlRig\Private\Sequencer\MovieSceneControlRigParameterTemplate.cpp:723]
UnrealEditor_MovieScene!UE::MovieScene::TPreAnimatedStateStorage<UE::MovieScene::FPreAnimatedObjectTokenTraits>::RestorePreAnimatedStateStorage() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Public\Evaluation\PreAnimatedState\MovieScenePreAnimatedStateStorage.h:274]
UnrealEditor_MovieScene!UE::MovieScene::FPreAnimatedStateExtension::RemoveMetaData() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\Evaluation\PreAnimatedState\MovieScenePreAnimatedStateExtension.cpp:187]
UnrealEditor_MovieScene!UE::MovieScene::TPreAnimatedCaptureSources<UE::MovieScene::FPreAnimatedEvaluationKeyType>::StopTrackingCaptureSource() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\Evaluation\PreAnimatedState\MovieScenePreAnimatedCaptureSources.inl:73]
UnrealEditor_MovieScene!FMovieSceneTrackEvaluator::CallSetupTearDown() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\Evaluation\Instances\MovieSceneTrackEvaluator.cpp:349]
UnrealEditor_MovieScene!UE::MovieScene::FSequenceInstance::Finish() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneSequenceInstance.cpp:347]
UnrealEditor_MovieScene!FMovieSceneEntitySystemRunner::GameThread_UpdateSequenceInstances() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:883]
UnrealEditor_MovieScene!FMovieSceneEntitySystemRunner::FlushNext() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:382]
UnrealEditor_MovieScene!FMovieSceneEntitySystemRunner::FlushOutstanding() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:551]
UnrealEditor_MovieScene!FMovieSceneRootEvaluationTemplateInstance::PlaybackContextChanged() [D:\build\++UE5\Sync\Engine\Source\Runtime\MovieScene\Private\Evaluation\MovieSceneEvaluationTemplateInstance.cpp:473]
UnrealEditor_Sequencer!FSequencer::OnPlaybackContextChanged() [D:\build\++UE5\Sync\Engine\Source\Editor\Sequencer\Private\Sequencer.cpp:693]
UnrealEditor_Sequencer!UE::Core::Private::Function::TFunctionRefCaller<`UE::Sequencer::SSequencerKeyNavigationButtons::Construct'::`2'::<lambda_1>,bool __cdecl(void)>::Call() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Templates\Function.h:405]
UnrealEditor_Sequencer!FLevelEditorSequencerIntegration::IterateAllSequencers() [D:\build\++UE5\Sync\Engine\Source\Editor\Sequencer\Private\LevelEditorSequencerIntegration.cpp:200]
UnrealEditor_Sequencer!FLevelEditorSequencerIntegration::OnEndPlayMap() [D:\build\++UE5\Sync\Engine\Source\Editor\Sequencer\Private\LevelEditorSequencerIntegration.cpp:735]
UnrealEditor_Sequencer!V::TBaseRawMethodDelegateInstance::ExecuteIfSafe() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:534]
UnrealEditor_UnrealEd!TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:956]
UnrealEditor_UnrealEd!UEditorEngine::EndPlayMap() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\PlayLevel.cpp:398]
UnrealEditor_UnrealEd!UEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:2348]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:550]
UnrealEditor_DisplayClusterEditor!UDisplayClusterEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Plugins\Runtime\nDisplay\Source\DisplayClusterEditor\Private\DisplayClusterEditorEngine.cpp:191]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5921]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:180]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:118]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:258]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:298]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Open to ideas for better solutions! Currently thinking I’ll try a character sublevel set to visible to see if that suffers the same issue.