Description

Defining a ChildActorComponent in code, then setting the component to a blueprint derived from another code class causes the editor to crash when opening the parent blueprint if any changes are made to the child class.

Steps to Reproduce
  1. Open UE4 Editor
  2. Add two classes based on Actor (Parent & Child)
  3. Add the following to Parent.h
    	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Test)
    	class UChildActorComponent* MyChildComp;
    
  4. Add the following to Parent.cpp
  5. # 	MyChildComp = CreateDefaultSubobject<UChildActorComponent>(TEXT("ChildActorComponent"));
    	MyChildComp->SetupAttachment(SceneComp);
    
  6. Compile
  7. Add two blueprints (ParentBP and ChildBP)
  8. Open ParentBP and set MyChildComp to ChildBP
  9. Save and close the project
  10. Add the following to Child.h
    UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = Collision)
    UCapsuleComponent* CollisionComponent;
    
  11. Add the following to Child.cpp
    CollisionComponent = CreateDefaultSubobject<UCapsuleComponent>(TEXT("CollisionComponent"));
    
  12. Compile and reopen project
  13. Open ParentBP

Result:
Editor crashes when attempting to open ParentBP

Expected:
ParentBP opens and can be edited.

Callstack
MachineId:7156C35640F86204E61B8383F45DEE17
EpicAccountId:e8c7fa630b6440f69a25a2c64d6c482c

Assertion failed: SubobjectOuter [File:D:\Build\++UE4+Release-4.14+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\CoreNative.cpp] [Line: 164] 
No corresponding destination object found for 'ChildBP_C /Game/ChildBP.Default__ChildBP_C' while attempting to instance component 'StaticMeshComponent /Game/ChildBP.Default__ChildBP_C:CollisionComponent'


UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:332]
UE4Editor_CoreUObject!FObjectInstancingGraph::GetInstancedSubobject() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\corenative.cpp:164]
UE4Editor_CoreUObject!FObjectInstancingGraph::InstancePropertyValue() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\corenative.cpp:263]
UE4Editor_CoreUObject!UObjectPropertyBase::InstanceSubobjects() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\propertybaseobject.cpp:34]
UE4Editor_CoreUObject!UStruct::InstanceSubobjectTemplates() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:1456]
UE4Editor_CoreUObject!FObjectInitializer::InstanceSubobjects() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2942]
UE4Editor_CoreUObject!FObjectInitializer::PostConstructInit() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2826]
UE4Editor_CoreUObject!FObjectInitializer::~FObjectInitializer() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2684]
UE4Editor_CoreUObject!StaticConstructObject_Internal() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:3212]
UE4Editor_Engine!NewObject<AActor>() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\public\uobject\uobjectglobals.h:1227]
UE4Editor_Engine!UWorld::SpawnActor() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\levelactor.cpp:405]
UE4Editor_Engine!UWorld::SpawnActor() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\levelactor.cpp:271]
UE4Editor_Engine!UChildActorComponent::CreateChildActor() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\components\childactorcomponent.cpp:484]
UE4Editor_Engine!UActorComponent::ExecuteRegisterEvents() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\components\actorcomponent.cpp:1179]
UE4Editor_Engine!UActorComponent::RegisterComponentWithWorld() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\components\actorcomponent.cpp:912]
UE4Editor_Engine!AActor::IncrementalRegisterComponents() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\actor.cpp:4041]
UE4Editor_Engine!AActor::RegisterAllComponents() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\actor.cpp:3940]
UE4Editor_Engine!AActor::PostSpawnInitialize() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\actor.cpp:2728]
UE4Editor_Engine!UWorld::SpawnActor() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\levelactor.cpp:438]
UE4Editor_Engine!UWorld::SpawnActor() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\levelactor.cpp:271]
UE4Editor_Kismet!FBlueprintEditor::UpdatePreviewActor() [d:\build\++ue4+release-4.14+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:8062]
UE4Editor_Kismet!FBlueprintEditor::Tick() [d:\build\++ue4+release-4.14+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:7028]
UE4Editor_UnrealEd!FTickableEditorObject::TickObjects() [d:\build\++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\public\tickableeditorobject.h:17]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1195]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:371]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2859]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\launch.cpp:152]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\build\++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Have Comments or More Details?

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

2
Login to Vote

Fixed
ComponentUE - Gameplay - Components
Affects Versions4.14.34.15
Target Fix4.16
Fix Commit3305031
Main Commit3358685
CreatedFeb 7, 2017
ResolvedFeb 15, 2017
UpdatedApr 27, 2018