Description

A crash occurs when attempting to preview specific LODs when the monitor resolution forces the menu to be expanded when selecting an LOD.

This Jira was created from CrashReports submitted by the public due to the high number of occurrences. Descriptions from users are provided below.

Error message:

Assertion failed: NewMenu.IsValid() && NewMenu->GetOwnedWindow().IsValid() [Link Removed] [Line: 390]

Source Context:

 376       MethodInUse = Method.IsSet()
  377       ? FPopupMethodReply::UseMethod(Method.GetValue())
  378       : QueryPopupMethod(MyWidgetPath);
  379       
  380       // "Normal" menus are created and managed by the application's menu stack functions
  381       if (bUseApplicationMenuStack)
  382       {
  383       if (MethodInUse.GetPopupMethod() == EPopupMethod::CreateNewWindow)
  384       {
  385       // Open the pop-up
  386       TSharedPtr<IMenu> NewMenu = FSlateApplication::Get().PushMenu(AsShared(), MyWidgetPath, MenuContentRef, NewPosition, TransitionEffect, bFocusMenu, SummonLocationSize, MethodInUse.GetPopupMethod(), bIsCollapsedByParent);
  387       
  388       PopupMenuPtr = NewMenu;
  389       check(NewMenu.IsValid() && NewMenu->GetOwnedWindow().IsValid());
  390 ***** NewMenu->GetOnMenuDismissed().AddSP(this, &SMenuAnchor::OnMenuClosed);
  391       PopupWindowPtr = NewMenu->GetOwnedWindow();
  392       }
  393       else
  394       {
  395       // We are re-using the current window instead of creating a new one.
  396       // The popup will be presented as a child of this widget.
  397       ensure(MethodInUse.GetPopupMethod() == EPopupMethod::UseCurrentWindow);
  398       PopupWindowPtr = MyWidgetPath.GetWindow();
  399       
  400       if (bFocusMenu)
  401       {
  402       FSlateApplication::Get().ReleaseMouseCaptureForUser(FocusUserIndex);
  403       }
  404       
  405       TSharedRef<SMenuAnchor> SharedThis = StaticCastSharedRef<SMenuAnchor>(AsShared());

Most recent user affected CL: 3142249

Logs:
[Link Removed]
[Link Removed]
[Link Removed]

Steps to Reproduce

1. Set the Resolution of your desktop screen to 1366x768 (Native is 1920x1080)
2. Open the attached project and open the Conifer_Desktop static mesh.
3. Select the 'Auto LOD' dropdown and choose any of the other LOD levels to preview.
4. Click the 'Click to Expand' option and re-select the 'Auto LOD' level.
5. Be sure to select the Duplicated Auto LOD dropdown that appears. (see attached screenshot).

Outcome Engine crashes upon selecting the Auto LOD from the dropdown.

Expected The Static mesh editor returns to the Auto LOD preview.

Repro Steps Video
[Link Removed]

Callstack
UE4Editor_Slate!SMenuAnchor::SetIsOpen() [smenuanchor.cpp:391]
UE4Editor_Slate!SComboButton::OnButtonClicked() [scombobutton.cpp:83]
UE4Editor_Slate!SComboBox<TSharedPtr<FString,0> >::OnButtonClicked() [scombobox.h:356]
UE4Editor_Slate!TMemberFunctionCaller<SComboButton,FReply() [delegateinstanceinterface.h:161]
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SComboButton,FReply() [tuple.h:115]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SComboButton,0,FReply __cdecl() [delegateinstancesimpl.h:317]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [delegatesignatureimpl.inl:521]
UE4Editor_Slate!SButton::OnMouseButtonDown() [sbutton.cpp:215]
UE4Editor_Slate!<lambda_7097b900f0e4be30d80fb18f98c51ea0>::operator() [slateapplication.cpp:4810]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_7097b900f0e4be30d80fb18f98c51ea0> >() [slateapplication.cpp:215]
UE4Editor_Slate!FSlateApplication::RoutePointerDownEvent() [slateapplication.cpp:4799]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDownEvent() [slateapplication.cpp:4757]
UE4Editor_Slate!FSlateApplication::OnMouseDown() [slateapplication.cpp:4691]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [windowsapplication.cpp:1592]
UE4Editor_Core!FWindowsApplication::DeferMessage() [windowsapplication.cpp:1930]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [windowsapplication.cpp:747]
UE4Editor_Core!FWindowsApplication::AppWndProc() [windowsapplication.cpp:669]
user32!<Unknown>
user32!<Unknown>
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [windowsplatformmisc.cpp:905]
UE4Editor!FEngineLoop::Tick() [launchengineloop.cpp:2788]
UE4Editor!GuardedMain() [launch.cpp:156]
UE4Editor!GuardedMainWrapper() [launchwindows.cpp:126]
UE4Editor!WinMain() [launchwindows.cpp:202]
UE4Editor!__scrt_common_main_seh() [exe_common.inl:264]
kernel32!<Unknown>
ntdll!<Unknown>
Community References

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

2
Login to Vote

Won't Fix
ComponentTools
Affects Versions4.13
CreatedOct 27, 2016
ResolvedAug 18, 2021
UpdatedAug 18, 2021