Description

The process will assert in UWorldPartition::Initialize on 

check(!OuterWorld->PersistentLevel->bAlreadyMovedActors);

 

The log from a debugging session (see attached image) that a LevelInstance gets load in the first WP level and then uninitialized. The assert fires when the next WP Level tries to initialize that same LI that is still loaded. 

Running the GC after each WP level resolves the problem as it forces the LI and it's dependencies to be cleanly reloaded. 

Steps to Reproduce

Steps to Reproduce

  • Create a World Partition level
  • Add a couple of level Instances to the level
  • Duplicate that level using WorldPartitionRenameDuplicateBuilder .
  • Run the WorldPartitionMiniMapBuilder on both levels at once
Callstack
  1. UnrealEditor-Engine-Win64-Debug.dll!UWorldPartition::Initialize(UWorld * InWorld, const UE::Math::TTransform<double> & InTransform) Line 793 C++
  2. UnrealEditor-Engine-Win64-Debug.dll!ULevel::OnLevelLoaded() Line 3552 C++
  3. UnrealEditor-Engine-Win64-Debug.dll!ULevelStreaming::SetLoadedLevel(ULevel * Level) Line 1413 C++
  4. UnrealEditor-Engine-Win64-Debug.dll!ULevelStreaming::PrepareLoadedLevel(ULevel * InLevel, UPackage * InLevelPackage, int InPIEInstanceID) Line 1476 C++
  5. UnrealEditor-Engine-Win64-Debug.dll!ULevelStreaming::RequestLevel(UWorld * PersistentWorld, bool bAllowLevelLoadRequests, ULevelStreaming::EReqLevelBlock BlockPolicy) Line 1701 C++
  6. UnrealEditor-Engine-Win64-Debug.dll!ULevelStreaming::UpdateStreamingState::__l2::<lambda_1>::operator()() Line 1008 C++
  7. UnrealEditor-Engine-Win64-Debug.dll!ULevelStreaming::UpdateStreamingState(bool & bOutUpdateAgain, bool & bOutRedetermineTarget, const TOptional<UE::FTimeout const> & InExternalTimeout) Line 1138 C++
  8. UnrealEditor-Engine-Win64-Debug.dll!UWorld::UpdateLevelStreaming(const TOptional<UE::FTimeout const> & ExternalTimeout) Line 4976 C++
  9. UnrealEditor-Engine-Win64-Debug.dll!UWorld::BlockTillLevelStreamingCompleted() Line 4712 C++
  10. UnrealEditor-Engine-Win64-Debug.dll!UEngine::BlockTillLevelStreamingCompleted(UWorld * InWorld) Line 16709 C++
  11. UnrealEditor-Engine-Win64-Debug.dll!ULevelStreamingLevelInstance::LoadInstance(ILevelInstanceInterface * LevelInstance) Line 440 C++
  12. UnrealEditor-Engine-Win64-Debug.dll!ULevelInstanceSubsystem::LoadLevelInstance(ILevelInstanceInterface * LevelInstance) Line 602 C++
  13. UnrealEditor-Engine-Win64-Debug.dll!ULevelInstanceSubsystem::UpdateStreamingStateInternal() Line 356 C++
  14. UnrealEditor-Engine-Win64-Debug.dll!ULevelInstanceSubsystem::OnUpdateStreamingState() Line 288 C++
  15. UnrealEditor-Engine-Win64-Debug.dll!ULevelInstanceSubsystem::Tick() Line 962 C++
  16. UnrealEditor-Engine-Win64-Debug.dll!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1715 C++
  17. UnrealEditor-UnrealEd-Win64-Debug.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1975 C++
  18. UnrealEditor-Engine-Win64-Debug.dll!CommandletHelpers::TickEngine(UWorld * InWorld, double InDeltaTime) Line 99 C++
  19. UnrealEditor-Engine-Win64-Debug.dll!FWorldPartitionHelpers::FakeEngineTick(UWorld * InWorld) Line 287 C++
  20. UnrealEditor-UnrealEd-Win64-Debug.dll!UWorldPartitionBuilder::Run(UWorld * World, FPackageSourceControlHelper & PackageHelper) Line 324 C++
  21. UnrealEditor-UnrealEd-Win64-Debug.dll!UWorldPartitionBuilder::RunBuilder(UWorld * World) Line 141 C++
  22. UnrealEditor-UnrealEd-Win64-Debug.dll!UWorldPartitionBuilderCommandlet::RunBuilder(TSubclassOf<UWorldPartitionBuilder> InBuilderClass, const FString & InWorldPackageName) Line 350 C++
  23. UnrealEditor-UnrealEd-Win64-Debug.dll!UWorldPartitionBuilderCommandlet::Main(const FString & Params) Line 246 C++
  24. UnrealEditor-Win64-Debug.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 4020 C++
  25. UnrealEditor-Win64-Debug.exe!FEngineLoop::PreInit(const wchar_t * CmdLine) Line 4319 C++
  26. UnrealEditor-Win64-Debug.exe!EnginePreInit(const wchar_t * CmdLine) Line 40 C++
  27. UnrealEditor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine) Line 152 C++
  28. UnrealEditor-Win64-Debug.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 294 C++
  29. UnrealEditor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 364 C++

Have Comments or More Details?

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

0
Login to Vote

Fixed
Fix Commit48556661
CreatedNov 21, 2025
ResolvedNov 21, 2025
UpdatedNov 24, 2025
View Jira Issue