I encountered the same issue last week.
In my case, the crash happened when I opened the map, not when starting PIE.
I tried every solution mentioned in this thread, but none of them worked for me.
Then, I started debugging the engine and found the problem.
It was an initialization order issue.
I had a Blueprint actor with two skeletal mesh components, like the one below:
DefaultSceneRoot
├ Leader
└ Follower
The engine attempted to register the ‘Follower’ component first, and the ‘Follower’ component tried to access the ‘Leader’ component, which wasn’t registered yet.
As a result, the ‘Follower’ component was initialized with invalid values, causing a crash.
The solution was to change the hierarchy, with ‘Leader’ as the parent:
DefaultSceneRoot
└ Leader
└ Follower
However, even after modifying my BP asset, I still suffered the crash.
This was because the engine tried to initialize the level with the already corrupted .umap file, not from the modified BP asset.
In the end, I modified the engine, opened the level, re-saved it with the modified BP, and then rolled back the engine changes.
And I was happy again!
Here is the code I added at the start of FSkeletalMeshObjectGPUSkin::Update():
if (InMeshComponent && InMeshComponent->LeaderPoseComponent.IsValid() && !InMeshComponent->LeaderPoseComponent->IsRegistered())
{
InMeshComponent->LeaderPoseComponent->RegisterComponent();
}
I hope this helps!