Description

This is a high frequency crash occurring for our users. It appears to be the same crash reported in [Link Removed], however that was fixed in 4.15.0, and the specific repro steps are verified to no longer cause the crash (I have tested again to be sure). However, this callstack is still occurring in 4.15.1 and 4.15.2.

Source Code

1614       	bool bCanPaste = false;
 1615       	if (GEditor->GetSelectedComponentCount() > 0)
 1616       	{
 1617       		check(GEditor->GetSelectedActorCount() == 1);
 1618 ***** 		auto SelectedActor = CastChecked<AActor>(*GEditor->GetSelectedActorIterator());
 1619       		bCanPaste = FComponentEditorUtils::CanPasteComponents(SelectedActor->GetRootComponent());
 1620       	}
 1621       	else
 1622       	{
 1623       		bCanPaste = GUnrealEd->CanPasteSelectedActorsFromClipboard(GetWorld());
 1624       	}
Steps to Reproduce

These are repro steps I have found. It is not 100% though and it invloves a lot of playing around with component and actor selection

  1. Drop cube into the world
  2. Drop another cube into the world
  3. Select the static mesh component in the second cube
  4. Ctrl+C
  5. Select the static mesh component in the first cube
  6. Paste it with Ctrl+V into the first cube
  7. Shift+Click to on the unselected component so that both components are selected
  8. Move everything a little bit (this seems to confuse the selection state). This is the part that I am unable to get to work constistently. You need to get into a state were the components are selected with the subdued selection color but the actor is not selected in the world outliner
  9. Ctrl+Z (undo)
  10. Ctrl+Y (redo)
  11. Ctrl+V again to paste into whatever is selected after the undo in step
Callstack
Assertion failed: GEditor->GetSelectedActorCount() == 1 [File:D:\Build\++UE4+Release-4.15+Compile\Sync\Engine\Source\Editor\LevelEditor\Private\LevelEditorActions.cpp] [Line: 1618]

UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() leveleditoractions.cpp:1619 
UE4Editor_Slate!FUICommandList::CanExecuteAction() uicommandlist.cpp:111 
UE4Editor_Slate!SMenuEntryBlock::IsEnabled() smenuentryblock.cpp:1098 
UE4Editor_Slate!TBaseSPMethodDelegateInstance<1,SMenuEntryBlock,0,bool __cdecl() delegateinstancesimpl.h:327 
UE4Editor_SlateCore!TAttribute<bool>::Get() attribute.h:137 
UE4Editor_SlateCore!SCompoundWidget::OnPaint() scompoundwidget.cpp:37 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SOverlay::OnPaint() soverlay.cpp:102 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() spanel.cpp:46 
UE4Editor_SlateCore!SPanel::OnPaint() spanel.cpp:21 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() spanel.cpp:46 
UE4Editor_SlateCore!SPanel::OnPaint() spanel.cpp:21 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() spanel.cpp:46 
UE4Editor_SlateCore!SPanel::OnPaint() spanel.cpp:21 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SOverlay::OnPaint() soverlay.cpp:102 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() spanel.cpp:46 
UE4Editor_SlateCore!SPanel::OnPaint() spanel.cpp:21 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SCompoundWidget::OnPaint() scompoundwidget.cpp:37 
UE4Editor_Slate!SScrollBox::OnPaint() sscrollbox.cpp:960 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SCompoundWidget::OnPaint() scompoundwidget.cpp:37 
UE4Editor_Slate!SBorder::OnPaint() sborder.cpp:86 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!SCompoundWidget::OnPaint() scompoundwidget.cpp:37 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:779 
UE4Editor_SlateCore!FSlateWindowElementList::FDeferredPaint::ExecutePaint() drawelements.cpp:607 
UE4Editor_SlateCore!FSlateWindowElementList::PaintDeferred() drawelements.cpp:632 
UE4Editor_SlateCore!SWidget::Paint() swidget.cpp:806 
UE4Editor_Slate!FSlateApplication::DrawWindowAndChildren() slateapplication.cpp:1158 
UE4Editor_Slate!FSlateApplication::DrawWindowAndChildren() slateapplication.cpp:1247 
UE4Editor_Slate!FSlateApplication::PrivateDrawWindows() slateapplication.cpp:1398 
UE4Editor_Slate!FSlateApplication::DrawWindows() slateapplication.cpp:1115 
UE4Editor_Slate!FSlateApplication::TickApplication() slateapplication.cpp:1720 
UE4Editor_Slate!FSlateApplication::Tick() slateapplication.cpp:1512 
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:3086 
UE4Editor!GuardedMain() launch.cpp:166 
UE4Editor!GuardedMainWrapper() launchwindows.cpp:134 
UE4Editor!WinMain() launchwindows.cpp:210 
UE4Editor!__scrt_common_main_seh() exe_common.inl:264 
kernel32!BaseThreadInitThunk() 
ntdll!RtlUserThreadStart() 

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentTools
Affects Versions4.14.34.15.2
Target Fix4.17
Fix Commit3427905
Main Commit3432852
CreatedMay 3, 2017
ResolvedMay 8, 2017
UpdatedApr 26, 2019