Description

A licensee reported that Datalayers that are added to UWorldPartitionBuilder::IncludedDataLayers in a custom builder PreRun are not respected.  

 

I used the minimap builder to debug the state of the Datalayer instaces and found that the state of the UDataLayerInstance can get reset while loading a LevelInstance. See callstack for context. 

 

 

Steps to Reproduce
  • Create a WP level
  • Add a Datalayer -> DL1
  • Add a Cube
  • Add a Cone
    • Assign the Cone to DL1
  • Create a new empty LevelInstance
    • Add DL1
    • Add a Cone (or other actor)
      • Assign the actor to DL1
  • Add an instance of the level instance to the WP level
  • Uncheck DL1 in the Datalayer panel.

 

  • In UWorldPartitionBuilder::LoadDataLayers
  • Change the code so bShouldBeLoaded os always true 
  • Run the WP minimap builder. 
  • DL1 should be "forced" loaded but the Cone and LI actor will not be in the generated minimap. 
Callstack

     UnrealEditor-Engine.dll!AWorldDataLayers::OnDataLayerManagerInitialized() Line 1209    C++
>    UnrealEditor-Engine.dll!UDataLayerManager::Initialize() Line 204    C++
     UnrealEditor-Engine.dll!UWorldPartition::Initialize::__l2::<lambda_2>::operator()() Line 738    C++
     UnrealEditor-Engine.dll!UWorldPartition::Initialize(UWorld * InWorld, const UE::Math::TTransform<double> & InTransform) Line 782    C++
     UnrealEditor-Engine.dll!ULevel::OnLevelLoaded() Line 3501    C++
     UnrealEditor-Engine.dll!ULevelStreaming::SetLoadedLevel(ULevel * Level) Line 1416    C++
     UnrealEditor-Engine.dll!ULevelStreaming::PrepareLoadedLevel(ULevel * InLevel, UPackage * InLevelPackage, int InPIEInstanceID) Line 1479    C++
     UnrealEditor-Engine.dll!ULevelStreaming::AsyncLevelLoadComplete(const FName & InPackageName, UPackage * InLoadedPackage, EAsyncLoadingResult::Type Result) Line 1814    C++
     [Inline Frame] UnrealEditor-Engine.dll!Invoke(void(ULevelStreaming::*)(const FName &, UPackage *, EAsyncLoadingResult::Type) PtrMemFun, ULevelStreaming * &) Line 66    C++
     [Inline Frame] UnrealEditor-Engine.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(ULevelStreaming::*)(const FName &, UPackage *, EAsyncLoadingResult::Type) &) Line 326    C++
     UnrealEditor-Engine.dll!TBaseUObjectMethodDelegateInstance<0,ULevelStreaming,void __cdecl(FName const &,UPackage *,enum EAsyncLoadingResult::Type),FDefaultDelegateUserPolicy>::ExecuteIfSafe(const FName & <Params_0>, UPackage * <Params_1>, EAsyncLoadingResult::Type <Params_2>) Line 713    C++
     [Inline Frame] UnrealEditor-CoreUObject.dll!TDelegate<void __cdecl(FName const &,UPackage *,enum EAsyncLoadingResult::Type),FDefaultDelegateUserPolicy>::ExecuteIfBound(const FName &) Line 631    C++
     [Inline Frame] UnrealEditor-CoreUObject.dll!FAsyncLoadingThread2::FCompletedPackageRequest::CallCompletionCallbacks() Line 4251    C++
     UnrealEditor-CoreUObject.dll!FAsyncLoadingThread2::ProcessLoadedPackagesFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool & bDidSomething, TArrayView<int const ,int> FlushRequestIDs) Line 10124    C++
     UnrealEditor-CoreUObject.dll!FAsyncLoadingThread2::TickAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit, TArrayView<int const ,int> FlushRequestIDs, bool & bDidSomething) Line 10194    C++
     UnrealEditor-CoreUObject.dll!FAsyncLoadingThread2::FlushLoading(TArrayView<int const ,int> RequestIDs) Line 11909    C++
     UnrealEditor-CoreUObject.dll!FlushAsyncLoading(TArrayView<int const ,int> RequestIds) Line 354    C++
     UnrealEditor-Engine.dll!ULevelStreaming::RequestLevel(UWorld * PersistentWorld, bool bAllowLevelLoadRequests, ULevelStreaming::EReqLevelBlock BlockPolicy) Line 1788    C++
     UnrealEditor-Engine.dll!ULevelStreaming::UpdateStreamingState::__l2::<lambda_1>::operator()() Line 1011    C++
     UnrealEditor-Engine.dll!ULevelStreaming::UpdateStreamingState(bool & bOutUpdateAgain, bool & bOutRedetermineTarget, const TOptional<UE::FTimeout const> & InExternalTimeout) Line 1222    C++
     [Inline Frame] UnrealEditor-Engine.dll!FStreamingLevelPrivateAccessor::UpdateStreamingState(ULevelStreaming *) Line 808    C++
     UnrealEditor-Engine.dll!UWorld::UpdateLevelStreaming(const TOptional<UE::FTimeout const> & ExternalTimeout) Line 5045    C++
     UnrealEditor-Engine.dll!UWorld::BlockTillLevelStreamingCompleted() Line 4747    C++
     UnrealEditor-Engine.dll!UEngine::BlockTillLevelStreamingCompleted(UWorld * InWorld) Line 16375    C++
     UnrealEditor-Engine.dll!ULevelStreamingLevelInstance::LoadInstance(ILevelInstanceInterface * LevelInstance) Line 437    C++
     UnrealEditor-Engine.dll!ULevelInstanceSubsystem::LoadLevelInstance(ILevelInstanceInterface * LevelInstance) Line 589    C++
     UnrealEditor-Engine.dll!ULevelInstanceSubsystem::UpdateStreamingStateInternal() Line 348    C++
     UnrealEditor-Engine.dll!ULevelInstanceSubsystem::OnUpdateStreamingState() Line 288    C++
     UnrealEditor-Engine.dll!ULevelInstanceSubsystem::Tick() Line 941    C++
     UnrealEditor-Engine.dll!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1866    C++
     UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1961    C++
     UnrealEditor-Engine.dll!CommandletHelpers::TickEngine(UWorld * InWorld, double InDeltaTime) Line 139    C++
     UnrealEditor-UnrealEd.dll!UWorldPartitionBuilder::Run(UWorld * World, FPackageSourceControlHelper & PackageHelper) Line 274    C++
     UnrealEditor-UnrealEd.dll!UWorldPartitionBuilder::RunBuilder(UWorld * World) Line 132    C++
     UnrealEditor-UnrealEd.dll!UWorldPartitionBuilderCommandlet::RunBuilder(TSubclassOf<UWorldPartitionBuilder> InBuilderClass, const FString & InWorldPackageName) Line 297    C++
     UnrealEditor-UnrealEd.dll!UWorldPartitionBuilderCommandlet::Main(const FString & Params) Line 193    C++
     UnrealEditor.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 4053    C++
     [Inline Frame] UnrealEditor.exe!FEngineLoop::PreInit(const wchar_t *) Line 4351    C++
     [Inline Frame] UnrealEditor.exe!EnginePreInit(const wchar_t *) Line 40    C++
     UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 146    C++
     UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 266    C++
     UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 334    C++
     [Inline Frame] UnrealEditor.exe!invoke_main() Line 102    C++
     UnrealEditor.exe!__scrt_common_main_seh() Line 288    C++
     kernel32.dll!00007ff99f55e8d7()    Unknown
     ntdll.dll!00007ff9a0acc53c()    Unknown

Have Comments or More Details?

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

0
Login to Vote

Fixed
Target Fix5.8
Fix Commit49762744
CreatedJan 9, 2026
ResolvedJan 13, 2026
UpdatedJan 15, 2026
View Jira Issue