Description

This is a common crash in 4.16 and trending in the 4.17 previews. It can be reproduced by clicking on the name of a variable that remains listed in a Blueprint after the associated component has already been deleted.

User Descriptions

  • Cleaning blueprints
  • Editor crashed when trying to remove a user-created actor component from a actor when the actor component was already deleted in the editor.
    -Created actor component blueprint
    -Created actor blueprint and added actor component to it.
    -Made a change to actor component (added variables set to public and recompiled)
    -Recompiled actor with actor component
    -Deleted actor component (force delete and closed out of all other blueprint editor windows)
    -Opened actor blueprint window, saw actor component was still there. Tried to delete it and editor crashes.

Source Context

 35       		if (const UStructProperty* StructProperty = Cast<const UStructProperty>(Property))
   36       		{
   37       			Definition.ObjectTypeName = StructProperty->Struct->GetFName();
   38       		}
   39       		else if (const UObjectPropertyBase* ObjectProperty = Cast<const UObjectPropertyBase>(Property))
   40       		{
   41       			Definition.ObjectTypeName = ObjectProperty->PropertyClass->GetFName();
   42       		}
   43       		else if(const UArrayProperty* ArrayProperty = Cast<const UArrayProperty>(Property))
   44       		{
   45       			Definition.PropertyTypeName = ArrayProperty->Inner->GetClass()->GetFName();
   46       			if (const UStructProperty* InnerStructProperty = Cast<const UStructProperty>(ArrayProperty->Inner))
   47       			{
   48 ***** 				Definition.ObjectTypeName = InnerStructProperty->Struct->GetFName();
   49       			}
   50       		}
   51       		return Definition;
   52       	}
Steps to Reproduce
  1. Create a Blueprint Class > ActorComponent
  2. Create a Blueprint Class > Actor
  3. Open the Actor BP
  4. Click '+ Add Component' > select your ActorComponent BP
  5. Compile and close
  6. In the Content Browser, delete the ActorComponent BP (choose 'Force Delete')
  7. Open the Actor BP, near the top click "Open Full Blueprint Editor"
  8. Under Variables > Components, click or right-click on the ActorComponent name

Result:
Crash

Callstack
Access violation - code c0000005 (first/second chance not available)

UE4Editor_Kismet!FAnimatedPropertyKey::FromProperty() [animatedpropertykey.h:49]
UE4Editor_Kismet!FBlueprintVarActionDetails::ExposeToCinematicsVisibility() [blueprintdetailscustomization.cpp:1836]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<1,FBlueprintVarActionDetails,0,EVisibility __cdecl() [delegateinstancesimpl.h:327]
UE4Editor_PropertyEditor!TAttribute<EVisibility>::Get() [attribute.h:137]
UE4Editor_PropertyEditor!FDetailItemNode::Initialize() [detailitemnode.cpp:59]
UE4Editor_PropertyEditor!FDetailCategoryImpl::GenerateNodesFromCustomizations() [detailcategorybuilderimpl.cpp:663]
UE4Editor_PropertyEditor!FDetailCategoryImpl::GenerateChildrenForSingleLayout() [detailcategorybuilderimpl.cpp:685]
UE4Editor_PropertyEditor!FDetailCategoryImpl::GenerateChildrenForLayouts() [detailcategorybuilderimpl.cpp:710]
UE4Editor_PropertyEditor!FDetailCategoryImpl::GenerateLayout() [detailcategorybuilderimpl.cpp:869]
UE4Editor_PropertyEditor!FDetailLayoutBuilderImpl::BuildCategories() [detaillayoutbuilderimpl.cpp:152]
UE4Editor_PropertyEditor!FDetailLayoutBuilderImpl::GenerateDetailLayout() [detaillayoutbuilderimpl.cpp:196]
UE4Editor_PropertyEditor!SDetailsViewBase::UpdateSinglePropertyMap() [sdetailsviewbase.cpp:408]
UE4Editor_PropertyEditor!SDetailsViewBase::UpdatePropertyMaps() [sdetailsviewbase.cpp:373]
UE4Editor_PropertyEditor!SDetailsView::PostSetObject() [sdetailsview.cpp:838]
UE4Editor_PropertyEditor!SDetailsView::SetObjectArrayPrivate() [sdetailsview.cpp:600]
UE4Editor_PropertyEditor!SDetailsView::SetObjects() [sdetailsview.cpp:349]
UE4Editor_Kismet!SKismetInspector::MakeContextualEditingWidget() [skismetinspector.cpp:158]
UE4Editor_Kismet!SKismetInspector::UpdateFromObjects() [skismetinspector.cpp:694]
UE4Editor_Kismet!SKismetInspector::Tick() [skismetinspector.cpp:117]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:773]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_Slate!SBorder::OnPaint() [sborder.cpp:86]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SOverlay::OnPaint() [soverlay.cpp:102]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_SlateCore!SPanel::OnPaint() [spanel.cpp:21]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_Slate!SSplitter::OnPaint() [ssplitter.cpp:168]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SOverlay::OnPaint() [soverlay.cpp:102]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_SlateCore!SPanel::OnPaint() [spanel.cpp:21]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_Slate!SBorder::OnPaint() [sborder.cpp:86]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SOverlay::OnPaint() [soverlay.cpp:102]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_SlateCore!SPanel::OnPaint() [spanel.cpp:21]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_Slate!SSplitter::OnPaint() [ssplitter.cpp:168]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SOverlay::OnPaint() [soverlay.cpp:102]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SCompoundWidget::OnPaint() [scompoundwidget.cpp:37]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_SlateCore!SPanel::OnPaint() [spanel.cpp:21]
UE4Editor_SlateCore!SWidget::Paint() [swidget.cpp:776]
UE4Editor_SlateCore!SPanel::PaintArrangedChildren() [spanel.cpp:46]
UE4Editor_SlateCore!SPanel::OnPaint() [spanel.cpp:21]

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.164.17
Target Fix4.17.2
Fix Commit3611213
CreatedJul 25, 2017
ResolvedAug 25, 2017
UpdatedApr 27, 2018
View Jira Issue