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.

3
Login to Vote

Unresolved
CreatedApr 21, 2019
UpdatedFeb 12, 2024