Steps to Reproduce

It is hard to reproduce the crash, but there is a scenario to cause it.

For example, there are two streaming levels in StreamingLevelsBeingConsidered list.

The first one's CurrentState is ECurrentState::MakingVisible, and it will try to World->AddToWorld. Because the bConsiderTimeLimit, the level may not finish the process of UWorld::AddToWorld, so the CurrentLevelPendingVisibility will not be nullptr.


Then, the second level's CurrentState is ECurrentState::LoadedNotVisible, and TargetState is ETargetState::Unloaded,  so it will try to DiscardPendingUnloadLevel and call UWorld::RemoveFromWorld, but because the CurrentLevelPendingVisibility  is not nullptr, it will fail to remove from world, and it will cause a crash when calling ClearLoadedLevel at check(PendingUnloadLevel == nullptr);


Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-73118 in the post.

Login to Vote

CreatedApr 21, 2019
UpdatedFeb 12, 2024