Description
  1. Create a blueprint based on actor, give it a SceneComponent named ExampleComp (BP_TestActor) - this should be the blueprints only component
  2. Create a new level (TestMap), place an instance of the blueprint in the level
  3. Restart the editor
  4. Open the blueprint (BP_TestActor) and delete the scene component. Recreate the scene component as a StaticMeshComponent and give it the same name as the component in step 1 (ExampleComp)
  5. Compile and save the blueprint
  6. Open the Test map,
  7. Not the error (The following assets have been modified and cannot be unloaded
  8. Continue past the error, note the crash

Please the the UDN for more details.

The crash happens because the map is dirtied on load, and then later attempted to be unloaded, which fails. The call that dirties the map on load has been introduced in CL 26465295.

I've confirmed that reverting that CL prevents the crash.

I've attached callstacks for the crash itself, the modal popup that claims the map could not be unloaded and the callstack that hits the code that dirties the map's package.

It's unclear why the editor tries to unload the map in the first place (a different map was open before, so it should not be necessary to unload it at all, only load it once).

 

 

Steps to Reproduce

See the linked UDN for detailed repro steps.

 

Callstack

> FSceneViewFamily::FSceneViewFamily(const FSceneViewFamily::ConstructionValues & CVS) Line 2846 C++
UEditorInteractiveToolsContext::GetRayFromMousePos(FEditorViewportClient * ViewportClient, FViewport * Viewport, int MouseX, int MouseY) Line 678 C++
UModeManagerInteractiveToolsContext::MouseEnter(FEditorViewportClient * ViewportClient, FViewport * Viewport, int x, int y) Line 1041 C++
FEditorModeTools::MouseEnter(FEditorViewportClient * InViewportClient, FViewport * Viewport, int X, int Y) Line 1465 C++
FEditorViewportClient::MouseEnter(FViewport * InViewport, int x, int y) Line 5753 C++
FSceneViewport::OnMouseEnter(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 708 C++
SViewport::OnMouseEnter(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 256 C++
FSlateApplication::RoutePointerMoveEvent::__l62::<lambda_5>::operator()(const FArrangedWidget & WidgetUnderCursor, const FPointerEvent & Event) Line 5628 C++
FEventRouter::Route<FNoReply,FEventRouter::FBubblePolicy,FPointerEvent,`FSlateApplication::RoutePointerMoveEvent'::`62'::<lambda_5>>(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerMoveEvent::__l62::<lambda_5> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 442 C++
FSlateApplication::RoutePointerMoveEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent, bool bIsSynthetic) Line 5622 C++
FSlateApplication::ProcessMouseMoveEvent(const FPointerEvent & MouseEvent, bool bIsSynthetic) Line 6113 C++
FSlateUser::SynthesizeCursorMoveIfNeeded() Line 707 C++
UE::Core::Private::Function::TFunctionRefCaller<`FSlateApplication::TickPlatform'::`11'::<lambda_2>,void __cdecl(FSlateUser &)>::Call(void * Obj, FSlateUser & <Params_0>) Line 405 C++
FSlateApplication::ForEachUser(TFunctionRef<void __cdecl(FSlateUser &)> InPredicate, bool bIncludeVirtualUsers) Line 4389 C++
FSlateApplication::TickPlatform(float DeltaTime) Line 1617 C++
FSlateApplication::AddModalWindow(TSharedRef<SWindow,1> InSlateWindow, const TSharedPtr<SWidget const ,1> InParentWidget, bool bSlowTaskWindow) Line 2129 C++
UEditorEngine::EditorAddModalWindow(TSharedRef<SWindow,1> InModalWindow) Line 4311 C++
OpenMessageDialog_Internal(EAppMsgCategory InMessageCategory, EAppMsgType::Type InMessageType, EAppReturnType::Type InDefaultValue, const FText & InMessage, const FText & InTitle) Line 402 C++
OpenMessageDialog_Internal(EAppMsgCategory InMessageCategory, EAppMsgType::Type InMessageType, const FText & InMessage, const FText & InTitle) Line 451 C++
UEditorEngine::OnModalMessageDialog(EAppMsgCategory InMessageCategory, EAppMsgType::Type InMessage, const FText & InText, const FText & InTitle) Line 5035 C++
TBaseUObjectMethodDelegateInstance<0,UEditorEngine,enum EAppReturnType::Type __cdecl(enum EAppMsgCategory,enum EAppMsgType::Type,FText const &,FText const &),FDefaultDelegateUserPolicy>::Execute(EAppMsgCategory <Params_0>, EAppMsgType::Type <Params_1>, const FText & <Params_2>, const FText & <Params_3>) Line 650 C++
FMessageDialog::Open(EAppMsgCategory MessageCategory, EAppMsgType::Type MessageType, EAppReturnType::Type DefaultValue, const FText & Message, const FText & Title) Line 176 C++
FMessageDialog::Open(EAppMsgCategory MessageCategory, EAppMsgType::Type MessageType, const FText & Message, const FText & Title) Line 146 C++
FMessageDialog::Open(EAppMsgType::Type MessageType, const FText & Message) Line 87 C++
UPackageTools::UnloadPackages(const TArray<UPackage *,TSizedDefaultAllocator<32>> & TopLevelPackages) Line 337 C++
UEditorEngine::Map_Load(const wchar_t * Str, FOutputDevice & Ar) Line 2457 C++
UEditorEngine::HandleMapCommand(const wchar_t * Str, FOutputDevice & Ar, UWorld * InWorld) Line 6106 C++
UEditorEngine::Exec_Editor(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 5623 C++
FExec::Exec(UWorld * InWorld, const wchar_t * Cmd, FOutputDevice & Ar) Line 18 C++
UEngine::Exec(UWorld * InWorld, const wchar_t * Cmd, FOutputDevice & Ar) Line 4758 C++
UUnrealEdEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 662 C++
FEditorFileUtils::LoadMap(const FString & InFilename, bool LoadAsTemplate, const bool bShowProgress) Line 2941 C++
UAssetDefinition_World::OpenAssets(const FAssetOpenArgs & OpenArgs) Line 65 C++
FAssetDefinitionProxy::OpenAssetEditor(const TArray<UObject *,TSizedDefaultAllocator<32>> & InObjects, const EAssetTypeActivationOpenedMethod OpenedMethod, TSharedPtr<IToolkitHost,1> EditWithinLevelEditor) Line 250 C++
UAssetEditorSubsystem::OpenEditorForAsset(UObject * Asset, const EToolkitMode::Type ToolkitMode, TSharedPtr<IToolkitHost,1> OpenedFromLevelEditor, const bool bShowProgressWindow, EAssetTypeActivationOpenedMethod OpenedMethod) Line 579 C++
UAssetEditorSubsystem::OpenEditorForAssets_Advanced(const TArray<UObject *,TSizedDefaultAllocator<32>> & InAssets, const EToolkitMode::Type ToolkitMode, TSharedPtr<IToolkitHost,1> OpenedFromLevelEditor, const EAssetTypeActivationOpenedMethod OpenedMethod) Line 648 C++
UAssetEditorSubsystem::OpenEditorForAssets(const TArray<UObject *,TSizedDefaultAllocator<32>> & Assets, const EAssetTypeActivationOpenedMethod OpenedMethod) Line 773 C++
ContentBrowserAssetData::EditOrPreviewAssetFileItems(TArrayView<TSharedRef<FContentBrowserAssetFileItemDataPayload const ,1> const ,int> InAssetPayloads, EAssetTypeActivationMethod::Type ActivationMethod, const EAssetTypeActivationOpenedMethod OpenedMethod) Line 382 C++
ContentBrowserAssetData::EditOrPreviewItems(IAssetTools * InAssetTools, const UContentBrowserDataSource * InOwnerDataSource, TArrayView<FContentBrowserItemData const ,int> InItems, EAssetTypeActivationMethod::Type ActivationMethod, EAssetTypeActivationOpenedMethod OpenedMethod) Line 427 C++
ContentBrowserAssetData::EditItems(IAssetTools * InAssetTools, const UContentBrowserDataSource * InOwnerDataSource, TArrayView<FContentBrowserItemData const ,int> InItems) Line 435 C++
UContentBrowserAssetDataSource::BulkEditItems(TArrayView<FContentBrowserItemData const ,int> InItems) Line 2207 C++
SContentBrowser::OnItemsActivated(TArrayView<FContentBrowserItem const ,int> ActivatedItems, EAssetTypeActivationMethod::Type ActivationMethod) Line 3196 C++
TBaseSPMethodDelegateInstance<0,SContentBrowser,1,void __cdecl(TArrayView<FContentBrowserItem const ,int>,enum EAssetTypeActivationMethod::Type),FDefaultDelegateUserPolicy>::Execute(TArrayView<FContentBrowserItem const ,int> <Params_0>, EAssetTypeActivationMethod::Type <Params_1>) Line 281 C++
SAssetView::OnListMouseButtonDoubleClick(TSharedPtr<FAssetViewItem,1> AssetItem) Line 4081 C++
UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter<void (__cdecl SAssetView::const &)(TSharedPtr<FAssetViewItem,1>),SAssetView * &,TSharedPtr<FAssetViewItem,1>>(void(SAssetView::)(TSharedPtr<FAssetViewItem,1>) & Func, SAssetView * & <Args_0>, TSharedPtr<FAssetViewItem,1> && <Args_1>) Line 309 C++
TBaseSPMethodDelegateInstance<0,SAssetView,1,void __cdecl(TSharedPtr<FAssetViewItem,1>),FDefaultDelegateUserPolicy>::ExecuteIfSafe(TSharedPtr<FAssetViewItem,1> <Params_0>) Line 300 C++
TDelegate<void __cdecl(TSharedPtr<FAssetViewItem,1>),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>(TSharedPtr<FAssetViewItem,1> <Params_0>) Line 570 C++
SListView<TSharedPtr<FAssetViewItem,1>>::Private_OnItemDoubleClicked(TSharedPtr<FAssetViewItem,1> TheItem) Line 1124 C++
STableRow<TSharedPtr<FAssetViewItem,1>>::OnMouseButtonDoubleClick(const FGeometry & InMyGeometry, const FPointerEvent & InMouseEvent) Line 437 C++
FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_1>::operator()(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5777 C++
FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,`FSlateApplication::RoutePointerDoubleClickEvent'::`2'::<lambda_1>>(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_1> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 442 C++
FSlateApplication::RoutePointerDoubleClickEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5775 C++
FSlateApplication::ProcessMouseButtonDoubleClickEvent(const TSharedPtr<FGenericWindow,1> & PlatformWindow, const FPointerEvent & InMouseEvent) Line 5760 C++
FSlateApplication::OnMouseDoubleClick(const TSharedPtr<FGenericWindow,1> & PlatformWindow, const EMouseButtons::Type Button, const UE::Math::TVector2<double> CursorPos) Line 5723 C++
FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2247 C++
FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2750 C++
FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1099 C++
WindowsApplication_WndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 923 C++
FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 929 C++
00007ff93177ef75() Unknown
00007ff93177e69d() Unknown
WinPumpMessages() Line 117 C++
FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 148 C++
FEngineLoop::Tick() Line 5832 C++
EngineTick() Line 62 C++
GuardedMain(const wchar_t * CmdLine) Line 183 C++
LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 247 C++
WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 298 C++
[Inline Frame] invoke_main() Line 102 C++
__scrt_common_main_seh() Line 288 C++
00007ff9311f7344() Unknown
00007ff9325a26b1() Unknown

> UE::Logging::Private::BasicFatalLog(const FLogCategoryBase & Category, const UE::Logging::Private::FStaticBasicLogRecord * Log, ...) Line 1088 C++
UEditorEngine::Map_Load(const wchar_t * Str, FOutputDevice & Ar) Line 2511 C++
UEditorEngine::HandleMapCommand(const wchar_t * Str, FOutputDevice & Ar, UWorld * InWorld) Line 6106 C++
UEditorEngine::Exec_Editor(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 5623 C++
FExec::Exec(UWorld * InWorld, const wchar_t * Cmd, FOutputDevice & Ar) Line 18 C++
UEngine::Exec(UWorld * InWorld, const wchar_t * Cmd, FOutputDevice & Ar) Line 4758 C++
UUnrealEdEngine::Exec(UWorld * InWorld, const wchar_t * Stream, FOutputDevice & Ar) Line 662 C++
FEditorFileUtils::LoadMap(const FString & InFilename, bool LoadAsTemplate, const bool bShowProgress) Line 2941 C++
UAssetDefinition_World::OpenAssets(const FAssetOpenArgs & OpenArgs) Line 65 C++
FAssetDefinitionProxy::OpenAssetEditor(const TArray<UObject *,TSizedDefaultAllocator<32>> & InObjects, const EAssetTypeActivationOpenedMethod OpenedMethod, TSharedPtr<IToolkitHost,1> EditWithinLevelEditor) Line 250 C++
UAssetEditorSubsystem::OpenEditorForAsset(UObject * Asset, const EToolkitMode::Type ToolkitMode, TSharedPtr<IToolkitHost,1> OpenedFromLevelEditor, const bool bShowProgressWindow, EAssetTypeActivationOpenedMethod OpenedMethod) Line 579 C++
UAssetEditorSubsystem::OpenEditorForAssets_Advanced(const TArray<UObject *,TSizedDefaultAllocator<32>> & InAssets, const EToolkitMode::Type ToolkitMode, TSharedPtr<IToolkitHost,1> OpenedFromLevelEditor, const EAssetTypeActivationOpenedMethod OpenedMethod) Line 648 C++
UAssetEditorSubsystem::OpenEditorForAssets(const TArray<UObject *,TSizedDefaultAllocator<32>> & Assets, const EAssetTypeActivationOpenedMethod OpenedMethod) Line 773 C++
ContentBrowserAssetData::EditOrPreviewAssetFileItems(TArrayView<TSharedRef<FContentBrowserAssetFileItemDataPayload const ,1> const ,int> InAssetPayloads, EAssetTypeActivationMethod::Type ActivationMethod, const EAssetTypeActivationOpenedMethod OpenedMethod) Line 382 C++
ContentBrowserAssetData::EditOrPreviewItems(IAssetTools * InAssetTools, const UContentBrowserDataSource * InOwnerDataSource, TArrayView<FContentBrowserItemData const ,int> InItems, EAssetTypeActivationMethod::Type ActivationMethod, EAssetTypeActivationOpenedMethod OpenedMethod) Line 427 C++
ContentBrowserAssetData::EditItems(IAssetTools * InAssetTools, const UContentBrowserDataSource * InOwnerDataSource, TArrayView<FContentBrowserItemData const ,int> InItems) Line 435 C++
UContentBrowserAssetDataSource::BulkEditItems(TArrayView<FContentBrowserItemData const ,int> InItems) Line 2207 C++
SContentBrowser::OnItemsActivated(TArrayView<FContentBrowserItem const ,int> ActivatedItems, EAssetTypeActivationMethod::Type ActivationMethod) Line 3196 C++
TBaseSPMethodDelegateInstance<0,SContentBrowser,1,void __cdecl(TArrayView<FContentBrowserItem const ,int>,enum EAssetTypeActivationMethod::Type),FDefaultDelegateUserPolicy>::Execute(TArrayView<FContentBrowserItem const ,int> <Params_0>, EAssetTypeActivationMethod::Type <Params_1>) Line 281 C++
SAssetView::OnListMouseButtonDoubleClick(TSharedPtr<FAssetViewItem,1> AssetItem) Line 4081 C++
UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter<void (__cdecl SAssetView::const &)(TSharedPtr<FAssetViewItem,1>),SAssetView * &,TSharedPtr<FAssetViewItem,1>>(void(SAssetView::)(TSharedPtr<FAssetViewItem,1>) & Func, SAssetView * & <Args_0>, TSharedPtr<FAssetViewItem,1> && <Args_1>) Line 309 C++
TBaseSPMethodDelegateInstance<0,SAssetView,1,void __cdecl(TSharedPtr<FAssetViewItem,1>),FDefaultDelegateUserPolicy>::ExecuteIfSafe(TSharedPtr<FAssetViewItem,1> <Params_0>) Line 300 C++
TDelegate<void __cdecl(TSharedPtr<FAssetViewItem,1>),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>(TSharedPtr<FAssetViewItem,1> <Params_0>) Line 570 C++
SListView<TSharedPtr<FAssetViewItem,1>>::Private_OnItemDoubleClicked(TSharedPtr<FAssetViewItem,1> TheItem) Line 1124 C++
STableRow<TSharedPtr<FAssetViewItem,1>>::OnMouseButtonDoubleClick(const FGeometry & InMyGeometry, const FPointerEvent & InMouseEvent) Line 437 C++
FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_1>::operator()(const FArrangedWidget & TargetWidget, const FPointerEvent & Event) Line 5777 C++
FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,`FSlateApplication::RoutePointerDoubleClickEvent'::`2'::<lambda_1>>(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_1> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 442 C++
FSlateApplication::RoutePointerDoubleClickEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5775 C++
FSlateApplication::ProcessMouseButtonDoubleClickEvent(const TSharedPtr<FGenericWindow,1> & PlatformWindow, const FPointerEvent & InMouseEvent) Line 5760 C++
FSlateApplication::OnMouseDoubleClick(const TSharedPtr<FGenericWindow,1> & PlatformWindow, const EMouseButtons::Type Button, const UE::Math::TVector2<double> CursorPos) Line 5723 C++
FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2247 C++
FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2750 C++
FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1099 C++
WindowsApplication_WndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 923 C++
FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 929 C++
00007ff93177ef75() Unknown
00007ff93177e69d() Unknown
WinPumpMessages() Line 117 C++
FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 148 C++
FEngineLoop::Tick() Line 5832 C++
EngineTick() Line 62 C++
GuardedMain(const wchar_t * CmdLine) Line 183 C++
LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 247 C++
WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 298 C++
[Inline Frame] invoke_main() Line 102 C++
__scrt_common_main_seh() Line 288 C++
00007ff9311f7344() Unknown
00007ff9325a26b1() Unknown

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Gameplay - Components
Affects Versions5.3
Target Fix5.429.20
Fix Commit32552426
Main Commit32557640
Release Commit32552544
CreatedFeb 1, 2024
ResolvedMar 27, 2024
UpdatedMar 28, 2024