Crash on opening Curve Editor

Summary

Upon opening a curve editor for ANY curve asset (float curve, color curve, etc), the editor crashes.

This happens regardless of

  • the curve type
  • the curve asset (i.e. a completely new uasset)
  • the project (happens in a new 5.8 project)
  • after clearing DCC
  • after verifying engine files

What Type of Bug are you experiencing?

Editor

Steps to Reproduce

1.) Make a new blank Blueprint project.
2.) Create a curve asset (float curve, for example)
3.) double click the asset in the content browser

Expected Result

The curve asset editor should open.

Observed Result

The editor crashes.

Affects Versions

5.8

Platform(s)

Windows

For crash reports, include your callstack

LoginId:f670f9324bc1a8639e15209c110851d2
EpicAccountId:15c7b71ee2554c28988251debf1048b7

Assertion failed: IsValid() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h] [Line: 1133]

UnrealEditor_Core!FDebug::CheckVerifyFailedImpl2() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:797]
UnrealEditor_CurveAssetEditor!FCurveAssetEditor::InitCurveAssetEditor() [D:\build++UE5\Sync\Engine\Source\Editor\CurveAssetEditor\Private\CurveAssetEditor.cpp:260]
UnrealEditor_CurveAssetEditor!FCurveAssetEditorModule::CreateCurveAssetEditor() [D:\build++UE5\Sync\Engine\Source\Editor\CurveAssetEditor\Private\CurveAssetEditorModule.cpp:35]
UnrealEditor_EngineAssetDefinitions!UAssetDefinition_Curve::OpenAssets() [D:\build++UE5\Sync\Engine\Plugins\Editor\EngineAssetDefinitions\Source\Private\AssetDefinition_Curve.cpp:30]
UnrealEditor_AssetTools!FAssetDefinitionProxy::OpenAssetEditor() [D:\build++UE5\Sync\Engine\Source\Developer\AssetTools\Private\AssetTools.cpp:259]
UnrealEditor_UnrealEd!UAssetEditorSubsystem::OpenEditorForAsset() [D:\build++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Subsystems\AssetEditorSubsystem.cpp:586]
UnrealEditor_UnrealEd!UAssetEditorSubsystem::OpenEditorForAssets_Advanced() [D:\build++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Subsystems\AssetEditorSubsystem.cpp:655]
UnrealEditor_UnrealEd!UAssetEditorSubsystem::OpenEditorForAssets() [D:\build++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\Subsystems\AssetEditorSubsystem.cpp:810]
UnrealEditor_ContentBrowserAssetDataSource!ContentBrowserAssetData::EditOrPreviewAssetFileItems() [D:\build++UE5\Sync\Engine\Plugins\Editor\ContentBrowser\ContentBrowserAssetDataSource\Source\ContentBrowserAssetDataSource\Private\ContentBrowserAssetDataCore.cpp:396]
UnrealEditor_ContentBrowserAssetDataSource!ContentBrowserAssetData::EditOrPreviewItems() [D:\build++UE5\Sync\Engine\Plugins\Editor\ContentBrowser\ContentBrowserAssetDataSource\Source\ContentBrowserAssetDataSource\Private\ContentBrowserAssetDataCore.cpp:441]
UnrealEditor_ContentBrowserAssetDataSource!UContentBrowserAssetDataSource::BulkEditItems() [D:\build++UE5\Sync\Engine\Plugins\Editor\ContentBrowser\ContentBrowserAssetDataSource\Source\ContentBrowserAssetDataSource\Private\ContentBrowserAssetDataSource.cpp:2762]
UnrealEditor_ContentBrowser!SContentBrowser::OnItemsActivated() [D:\build++UE5\Sync\Engine\Source\Editor\ContentBrowser\Private\SContentBrowser.cpp:3302]
UnrealEditor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,1,void __cdecl(TArrayView<FContentBrowserItem const ,int>,enum EAssetTypeActivationMethod::Type),FDefaultDelegateUserPolicy>::Execute() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:266]
UnrealEditor_ContentBrowser!SAssetView::OnListMouseButtonDoubleClick() [D:\build++UE5\Sync\Engine\Source\Editor\ContentBrowser\Private\SAssetView.cpp:5810]
UnrealEditor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,1,void __cdecl(TSharedPtr<FAssetViewItem,1>),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:283]
UnrealEditor_ContentBrowser!TDelegate<void __cdecl(TSharedPtr<FAssetViewItem,1>),FDefaultDelegateUserPolicy>::ExecuteIfBound() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:644]
UnrealEditor_ContentBrowser!SListView<TSharedPtr<FAssetViewItem,1> >::Private_OnItemDoubleClicked() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Public\Widgets\Views\SListView.h:1428]
UnrealEditor_ContentBrowser!STableRow<TSharedPtr<FAssetViewItem,1> >::OnMouseButtonDoubleClick() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Public\Widgets\Views\STableRow.h:448]
UnrealEditor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,FSlateApplication::RoutePointerDoubleClickEvent'::2’::<lambda_1> >() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:465]
UnrealEditor_Slate!FSlateApplication::RoutePointerDoubleClickEvent() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:6071]
UnrealEditor_Slate!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:6056]
UnrealEditor_Slate!FSlateApplication::OnMouseDoubleClick() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:6019]
UnrealEditor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [D:\build++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:3498]
UnrealEditor_ApplicationCore!FWindowsApplication::DeferMessage() [D:\build++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:4197]
UnrealEditor_ApplicationCore!FWindowsApplication::ProcessMessage() [D:\build++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2417]
UnrealEditor_ApplicationCore!FWindowsApplication::AppWndProc() [D:\build++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2212]
user32
user32
UnrealEditor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [D:\build++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp:241]
UnrealEditor!FEngineLoop::Tick() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5784]
UnrealEditor!GuardedMain() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:190]
UnrealEditor!GuardedMainWrapper() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:123]
UnrealEditor!LaunchWindowsStartup() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:277]
UnrealEditor!WinMain() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:338]
UnrealEditor!__scrt_common_main_seh() [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Additional Notes

Here is a download link to the crash report (zipped, GDRIVE): https://drive.google.com/file/d/1ACI2AAzfkUAujS8sVOag12IBsJ-4BdV2/view?usp=sharing

Note:
Despite the persistence in the face of verifying engine files and new projects, this issue abruptly began AFTER dragging a curve editor tab from one curve editor window to another. Before this first abrupt crash triggered by this tab grabbing attempt, nothing was crashing. Yet this persists after deleting the WindowsNoEditor folder from the editor, verifying engine files, deleting DCC, deleting the uasset and making new ones, making a completely new empty project, etc etc…

:white_check_mark:Solved. BUT still a bug. :police_car_light:

  1. Repro: open a float curve editor, drag its Curve tab out to a floating window, close everything → every future curve asset open crashes, in all projects, permanently. (Layout persistence saves an unspawnable state.)
  2. Crash site: FCurveAssetEditor::GetToolbarExtender() dereferences CurveEditorPanel without a validity check when the restored layout doesn’t spawn the curve tab — five lines below code that does guard CurveEditor.IsValid().

Workaround for anyone else hit by it: delete the Standalone_CurveAssetEditor_Layout_v2 entry from %LOCALAPPDATA%\UnrealEngine\Editor\EditorLayout.json.

EditorLayout_poisoned_backup.json (42.0 KB)