BUG - EXCEPTION_ACCESS_VIOLATION on groom calculating bounds

From time to time I get the following error in 4.27 when trying to save my project or to start rendering. Can’t reproduce it with 100% rate but it happens and it crashes the engine.

As you can see from the log the error occurs when engine is trying to calculate bounds for groom component. I’ve found the exact line:
const FBox WorldSkeletalBound = RegisteredMeshComponent->CalcBounds(InLocalToWorld).GetBox();(source)

Any ideas why it happens and how can I fix it?

Log stack:

LoginId:61e5e0634c7478130b706f9fc56898df
EpicAccountId:233249e1054b444281c6682f489eaa5e

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION 0x0000000000000000

UE4Editor_HairStrandsCore!UGroomComponent::CalcBounds() [D:\Build\++UE4\Sync\Engine\Plugins\Runtime\HairStrands\Source\HairStrandsCore\Private\GroomComponent.cpp:1707]
UE4Editor_Engine!USceneComponent::UpdateBounds() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:1215]
UE4Editor_Engine!UPrimitiveComponent::UpdateBounds() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\PrimitiveComponent.cpp:3455]
UE4Editor_Engine!USceneComponent::PropagateTransformUpdate() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:753]
UE4Editor_Engine!USceneComponent::UpdateComponentToWorldWithParent() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:665]
UE4Editor_Engine!USceneComponent::UpdateComponentToWorld() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Classes\Components\SceneComponent.h:872]
UE4Editor_Engine!USceneComponent::UpdateChildTransforms() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:2372]
UE4Editor_Engine!USceneComponent::PropagateTransformUpdate() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:780]
UE4Editor_Engine!USceneComponent::UpdateComponentToWorldWithParent() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Components\SceneComponent.cpp:665]
UE4Editor_Engine!USceneComponent::UpdateComponentToWorld() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Classes\Components\SceneComponent.h:872]
UE4Editor_Engine!UWorld::SpawnActorAbsolute() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\LevelActor.cpp:285]
UE4Editor_LevelSequence!FLevelSequenceActorSpawner::SpawnObject() [D:\Build\++UE4\Sync\Engine\Source\Runtime\LevelSequence\Private\LevelSequenceActorSpawner.cpp:191]
UE4Editor_LevelSequence!FLevelSequenceSpawnRegister::SpawnObject() [D:\Build\++UE4\Sync\Engine\Source\Runtime\LevelSequence\Private\LevelSequenceSpawnRegister.cpp:24]
UE4Editor_MovieScene!FMovieSceneSpawnRegister::SpawnObject() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\MovieSceneSpawnRegister.cpp:39]
UE4Editor_MovieScene!<lambda_9b6dabbcb11c8c2978a5ebe50cd8e2a8>::operator()() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneSpawnablesSystem.cpp:163]
UE4Editor_MovieScene!UE::MovieScene::TEntityTaskComponentsImpl<TIntegerSequence<int,0,1>,UE::MovieScene::TReadAccess<UE::MovieScene::FInstanceHandle>,UE::MovieScene::TReadAccess<FGuid> >::Iterate_PerEntityImpl<<lambda_9b6dabbcb11c8c2978a5ebe50cd8e2a8> &>() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Public\EntitySystem\MovieSceneEntitySystemTask.h:659]
UE4Editor_MovieScene!UMovieSceneSpawnablesSystem::OnRun() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneSpawnablesSystem.cpp:174]
UE4Editor_MovieScene!UMovieSceneEntitySystem::Run() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystem.cpp:361]
UE4Editor_MovieScene!FMovieSceneEntitySystemGraph::ExecutePhase<TArray<unsigned short,TInlineAllocator<4,TSizedDefaultAllocator<32> > > >() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemGraphs.cpp:760]
UE4Editor_MovieScene!FMovieSceneEntitySystemRunner::GameThread_SpawnPhase() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:319]
UE4Editor_MovieScene!FMovieSceneEntitySystemRunner::GameThread_ProcessQueue() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:272]
UE4Editor_MovieScene!FMovieSceneEntitySystemRunner::DoFlushUpdateQueueOnce() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:179]
UE4Editor_MovieScene!FMovieSceneEntitySystemRunner::Flush() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\EntitySystem\MovieSceneEntitySystemRunner.cpp:147]
UE4Editor_MovieScene!FMovieSceneRootEvaluationTemplateInstance::Evaluate() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\Evaluation\MovieSceneEvaluationTemplateInstance.cpp:147]
UE4Editor_MovieScene!UMovieSceneSequencePlayer::UpdateMovieSceneInstance() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\MovieSceneSequencePlayer.cpp:1019]
UE4Editor_LevelSequence!ULevelSequencePlayer::UpdateMovieSceneInstance() [D:\Build\++UE4\Sync\Engine\Source\Runtime\LevelSequence\Private\LevelSequencePlayer.cpp:165]
UE4Editor_MovieScene!UMovieSceneSequencePlayer::UpdateTimeCursorPosition_Internal() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\MovieSceneSequencePlayer.cpp:982]
UE4Editor_MovieScene!UMovieSceneSequencePlayer::SetPlaybackPosition() [D:\Build\++UE4\Sync\Engine\Source\Runtime\MovieScene\Private\MovieSceneSequencePlayer.cpp:552]
UE4Editor_MovieRenderPipelineCore!UMoviePipeline::TickProducingFrames() [D:\Build\++UE4\Sync\Engine\Plugins\MovieScene\MovieRenderPipeline\Source\MovieRenderPipelineCore\Private\MoviePipelineTiming.cpp:188]
UE4Editor_MovieRenderPipelineCore!UMoviePipeline::OnEngineTickBeginFrame() [D:\Build\++UE4\Sync\Engine\Plugins\MovieScene\MovieRenderPipeline\Source\MovieRenderPipelineCore\Private\MoviePipeline.cpp:555]
UE4Editor_MovieRenderPipelineCore!TBaseUObjectMethodDelegateInstance<0,UMoviePipeline,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:611]
UE4Editor!TMulticastDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::Broadcast() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor!FEngineLoop::Tick() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4740]
UE4Editor!GuardedMain() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:178]
UE4Editor!GuardedMainWrapper() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
UE4Editor!LaunchWindowsStartup() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:273]
UE4Editor!WinMain() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:320]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Just fixed that - the problem was that groom was set to be Possessable when the mesh that it was attached to was set to be Spawnable and when I hit play or saved the project Unreal was trying to recalculate bounds for groom, I guess by using RegisteredMeshComponent. But because mesh wasn’t spawned yet it could not access it and ran into error.
The fix is to set both groom and mesh it’s attached to be Possessable or Spawnable.