Description

UDN description:
When landscape is flagged as Nanite enabled but nanite mesh has not been built yet, a save operation (or an auto save) triggers a fatal failed check in ULandscapeNaniteComponent::InitializeForLandscapeAsync because World->GetSubsystem<ULandscapeSubsystem>() returns a nullptr LandscapeSubSystem.

Steps to Reproduce

UDN:

  1. LOAD A LEVEL WITH A LANDSCAPE IN A SUBLEVEL
  2. I enabled nanite of the landscape
  3. I waited for the nanite mesh build to complete
  4. I saved the scene
  5. I edited the landscape by sculpting
  6. the landscape is then rendered in the traditional way
  7. I saved the scene
  8. I found out that the scene save didn't really save all levels (the landscape is in a specific level, not in the persistent). So I didn't save the landscape layer but only the persistent level. Editor asked me to save the specific landscape level
  9. I save the specific landscape level
    Crash
Callstack
>	UnrealEditor-Landscape.dll!ULandscapeNaniteComponent::InitializeForLandscapeAsync(ALandscapeProxy * Landscape, const FGuid & NewProxyContentId, bool bInIsAsync, const TArrayView<ULandscapeComponent *,int> & InComponentsToExport, int InNaniteComponentIndex) Line 151	C++
 	UnrealEditor-Landscape.dll!ALandscapeProxy::UpdateNaniteRepresentationAsync(const ITargetPlatform * InTargetPlatform) Line 409	C++
 	UnrealEditor-Landscape.dll!ALandscapeProxy::UpdateNaniteRepresentation(const ITargetPlatform * InTargetPlatform) Line 447	C++
 	UnrealEditor-Landscape.dll!ALandscapeProxy::PreSave(FObjectPreSaveContext ObjectSaveContext) Line 3218	C++
 	UnrealEditor-CoreUObject.dll!UE::SavePackageUtilities::CallPreSave(UObject * Object, FObjectSaveContextData & ObjectSaveContext) Line 656	C++
 	UnrealEditor-CoreUObject.dll!`anonymous namespace'::RoutePresave(FSaveContext & SaveContext) Line 278	C++
 	UnrealEditor-CoreUObject.dll!UPackage::Save2(UPackage * InPackage, UObject * InAsset, const wchar_t * InFilename, const FSavePackageArgs & SaveArgs) Line 3062	C++
 	UnrealEditor-CoreUObject.dll!UPackage::Save(UPackage * InOuter, UObject * InAsset, const wchar_t * Filename, const FSavePackageArgs & SaveArgs) Line 20	C++
 	UnrealEditor-UnrealEd.dll!UEditorEngine::Save(UPackage * InOuter, UObject * InAsset, const wchar_t * Filename, const FSavePackageArgs & InSaveArgs) Line 4707	C++
 	UnrealEditor-UnrealEd.dll!UEditorEngine::SavePackage(UPackage * InOuter, UObject * InAsset, const wchar_t * Filename, const FSavePackageArgs & SaveArgs) Line 4716	C++
 	UnrealEditor-UnrealEd.dll!UEditorEngine::Exec_Obj(const wchar_t * Str, FOutputDevice & Ar) Line 4739	C++
 	UnrealEditor-UnrealEd.dll!UEditorEngine::Exec_Editor(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 5810	C++
 	UnrealEditor-Core.dll!FExec::Exec(UWorld * InWorld, const wchar_t * Cmd, FOutputDevice & Ar) Line 18	C++
 	UnrealEditor-Engine.dll!UEngine::Exec(UWorld * InWorld, const wchar_t * Cmd, FOutputDevice & Ar) Line 4780	C++
 	UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 662	C++
 	UnrealEditor-UnrealEd.dll!SaveWorld(UWorld * World, const FString * ForceFilename, const wchar_t * OverridePath, const wchar_t * FilenamePrefix, bool bRenamePackageToFile, bool bCheckDirty, FString & FinalFilename, bool bAutosaving, bool bPIESaving) Line 906	C++
 	UnrealEditor-UnrealEd.dll!FEditorFileUtils::SaveMap(UWorld * InWorld, const FString & Filename) Line 2998	C++
 	UnrealEditor-UnrealEd.dll!InternalSavePackage(UPackage * PackageToSave, bool bUseDialog, bool & bOutPackageLocallyWritable, FOutputDevice & SaveOutput) Line 3522	C++
 	UnrealEditor-UnrealEd.dll!InternalPromptForCheckoutAndSave(const TArray<UPackage *,TSizedDefaultAllocator<32>> & FinalSaveList, bool bUseDialog, TArray<UPackage *,TSizedDefaultAllocator<32>> & OutFailedPackages) Line 4174	C++
 	UnrealEditor-UnrealEd.dll!FEditorFileUtils::PromptForCheckoutAndSave(const TArray<UPackage *,TSizedDefaultAllocator<32>> & InPackages, FEditorFileUtils::FPromptForCheckoutAndSaveParams & InOutParams) Line 4551	C++
 	UnrealEditor-UnrealEd.dll!InternalSavePackages(const TArray<UPackage *,TSizedDefaultAllocator<32>> & PackagesToSave, bool bPromptUserToSave, bool bFastSave, bool bCanBeDeclined, bool bCheckDirty) Line 3808	C++
 	UnrealEditor-UnrealEd.dll!FEditorFileUtils::SaveDirtyPackages(const bool bPromptUserToSave, const bool bSaveMapPackages, const bool bSaveContentPackages, const bool bFastSave, const bool bNotifyNoPackagesSaved, const bool bCanBeDeclined, bool * bOutPackagesNeededSaving, const TFunctionRef<bool __cdecl(UPackage *)> & ShouldIgnorePackageFunction) Line 3952	C++
 	UnrealEditor-MainFrame.dll!FMainFrameHandler::CanCloseEditor() Line 154	C++
 	UnrealEditor-MainFrame.dll!FMainFrameHandler::CloseRootWindowOverride(const TSharedRef<SWindow,1> & WindowBeingClosed) Line 173	C++
 	[Inline Frame] UnrealEditor-MainFrame.dll!Invoke(void(FMainFrameHandler::*)(const TSharedRef<SWindow,1> &)) Line 66	C++
 	[Inline Frame] UnrealEditor-MainFrame.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(FMainFrameHandler::*)(const TSharedRef<SWindow,1> &) &) Line 311	C++
 	UnrealEditor-MainFrame.dll!TBaseRawMethodDelegateInstance<0,FMainFrameHandler,void __cdecl(TSharedRef<SWindow,1> const &),FDefaultDelegateUserPolicy>::Execute(const TSharedRef<SWindow,1> & <Params_0>) Line 518	C++
 	[Inline Frame] UnrealEditor-SlateCore.dll!TDelegate<void __cdecl(TSharedRef<SWindow,1> const &),FDefaultDelegateUserPolicy>::Execute(const TSharedRef<SWindow,1> &) Line 549	C++
 	UnrealEditor-SlateCore.dll!SWindow::RequestDestroyWindow() Line 1364	C++
 	UnrealEditor-Slate.dll!SWindowTitleBar::CloseButton_OnClicked() Line 539	C++
 	[Inline Frame] UnrealEditor-Slate.dll!Invoke(FReply(SWindowTitleBar::*)()) Line 66	C++
 	[Inline Frame] UnrealEditor-Slate.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(FReply(SWindowTitleBar::*)() &) Line 311	C++
 	UnrealEditor-Slate.dll!TBaseSPMethodDelegateInstance<0,SWindowTitleBar,1,FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 281	C++
 	UnrealEditor-Slate.dll!TDelegate<FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 549	C++
 	UnrealEditor-Slate.dll!SButton::ExecuteOnClick() Line 465	C++
 	UnrealEditor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 390	C++
 	[Inline Frame] UnrealEditor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda_3>::operator()(const FArrangedWidget &) Line 5272	C++
 	UnrealEditor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,`FSlateApplication::RoutePointerUpEvent'::`8'::<lambda_3>>(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::<lambda_3> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 442	C++
 	UnrealEditor-Slate.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5258	C++
 	UnrealEditor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 5827	C++
 	UnrealEditor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const UE::Math::TVector2<double> CursorPos) Line 5792	C++
 	UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2231	C++
 	UnrealEditor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2749	C++
 	UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1099	C++
 	[Inline Frame] UnrealEditor-ApplicationCore.dll!WindowsApplication_WndProc(HWND__ *) Line 931	C++
 	UnrealEditor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 937	C++

Have Comments or More Details?

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

11
Login to Vote

Unresolved
CreatedMay 21, 2024
UpdatedSep 25, 2024
View Jira Issue