Rare crash in MovieScene::FEntityManager::MigrateEntity

We’ve been recently getting a rare crash somewhere in the neighbourhood of slate and UMG animations. We have no stable repro, the crash appears seemingly at random, and we need assistance with pinpointing the cause and fix for this.

The only clue is the callstack:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000036
 
UE::MovieScene::FEntityManager::MigrateEntity() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntityManager.cpp:2204]
UE::MovieScene::FEntityManager::AddComponents() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntityManager.cpp:1234]
UE::MovieScene::FEntityLedger::UnlinkEverything() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntityLedger.cpp:357]
UE::MovieScene::FSequenceInstance::Finish() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneSequenceInstance.cpp:335]
FMovieSceneEntitySystemRunner::GameThread_UpdateSequenceInstances() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:844]
FMovieSceneEntitySystemRunner::FlushNext() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:344]
FMovieSceneEntitySystemRunner::FlushOutstanding() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:483]
UUMGSequenceTickManager::TickWidgetAnimations() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\UMG\Private\Animation\UMGSequenceTickManager.cpp:228]
TBaseUObjectMethodDelegateInstance<0,UMovieSceneSequenceTickManager,void __cdecl(float),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:667]
TMulticastDelegate<void __cdecl(float),FDefaultDelegateUserPolicy>::Broadcast() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:1079]
FSlateApplication::TickAndDrawWidgets() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1673]
FSlateApplication::Tick() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1577]
FEngineLoop::Tick() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:6005]
GuardedMain() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Launch\Private\Launch.cpp:188]
GuardedMainWrapper() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:123]
LaunchWindowsStartup() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:277]
WinMain() [G:\BuildAgent\work\d1f4f4dd347bf222\depot\main\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:318]
__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

It might also coincide with turning on Global Invalidation, however - we have no proof or certainity that this is the case.

[Attachment Removed]

Steps to Reproduce
No stable reproduction has been found

[Attachment Removed]

Hi,

We ran into a crash with a very similar callstack and checked in a fix at CL#56166854. Hopefully you’re hitting the same underlying issue and integrating that change will resolve it, but let us know if you still see this crash and we’ll investigate further.

Best,

Cody

[Attachment Removed]