Description

Current workaround: Add a dummy variable to either BP_Owner_Child or BP_CAC_Child to force one of the two to be nativized.

Steps to Reproduce
  1. Launch UE4 editor.
  2. Create a new Actor-based Blueprint class (BP_CAC).
  3. Double-click to edit and add a new StaticMesh component.
  4. Compile, save and close the BP editor.
  5. Right-click on BP_CAC and choose to create a child class (BP_CAC_Child).
  6. Save BP_CAC_Child.
  7. Create a new Actor-based Blueprint class (BP_Owner).
  8. Double-click to edit and add a ChildActor component.
  9. Compile, save and close the BP editor.
  10. Right-click on BP_Owner and choose to create a child class (BP_Owner_Child).
  11. Double-click to edit, select the inherited ChildActor component. In the details panel, set the ChildActor class to "BP_CAC_Child."
  12. Compile, save and close the BP editor.
  13. Open the Level Blueprint and drag off the BeginPlay node to create a new SpawnActorFromClass node.
  14. Change the "Class" input pin to "BP_Owner_Child" and connect a default value to the "Transform" input pin.
  15. Compile, and save the level (NewMap).
  16. In Editor->Project Settings (Maps & Modes), change the Game default map to "NewMap."
  17. Still in project settings (Packaging), change "Blueprint Nativization Method" to "Inclusive."
  18. Close the project settings window.
  19. Choose File->Package Project->Windows->Win64, choose a location and wait for packaging to finish.
  20. Attempt to launch the packaged EXE. An assertion will result:
    LogWindows: Error: === Critical error: ===
    LogWindows: Error:
    LogWindows: Error: Assertion failed: SubobjectOuter && SubobjectOuter != (UObject*)-1 [Link Removed] [Line: 194]
    LogWindows: Error: No corresponding destination object found for 'BP_CACBase_Child_C /Game/BP_CACBase_Child.Default_BP_CACBase_Child_C' while attempting to instance component 'StaticMeshComponent /Game/BP_CACBase_Child.Default_BP_CACBase_Child_C:StaticMesh'
Callstack

> NonNativeCAC-Win64-Debug.exe!FObjectInstancingGraph::GetInstancedSubobject(UObject * SourceSubobject, UObject * CurrentValue, UObject * CurrentObject, bool bDoNotCreateNewInstance, bool bAllowSelfReference) Line 194 C++
NonNativeCAC-Win64-Debug.exe!FObjectInstancingGraph::InstancePropertyValue(UObject * ComponentTemplate, UObject * CurrentValue, UObject * Owner, bool bIsTransient, bool bCausesInstancing, bool bAllowSelfReference) Line 293 C++
NonNativeCAC-Win64-Debug.exe!UObjectPropertyBase::InstanceSubobjects(void * Data, const void * DefaultData, UObject * Owner, FObjectInstancingGraph * InstanceGraph) Line 36 C++
NonNativeCAC-Win64-Debug.exe!UStruct::InstanceSubobjectTemplates(void * Data, const void * DefaultData, UStruct * DefaultStruct, UObject * Owner, FObjectInstancingGraph * InstanceGraph) Line 1630 C++
NonNativeCAC-Win64-Debug.exe!FObjectInitializer::InstanceSubobjects(UClass * Class, bool bNeedInstancing, bool bNeedSubobjectInstancing) Line 2913 C++
NonNativeCAC-Win64-Debug.exe!FObjectInitializer::PostConstructInit() Line 2793 C++
NonNativeCAC-Win64-Debug.exe!FObjectInitializer::~FObjectInitializer() Line 2653 C++
NonNativeCAC-Win64-Debug.exe!StaticConstructObject_Internal(const UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, UObject * InTemplate, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph, bool bAssumeTemplateIsArchetype) Line 3172 C++
NonNativeCAC-Win64-Debug.exe!NewObject<AActor>(UObject * Outer, const UClass * Class, FName Name, EObjectFlags Flags, UObject * Template, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph) Line 1215 C++
NonNativeCAC-Win64-Debug.exe!UWorld::SpawnActor(UClass * Class, const FTransform * UserTransformPtr, const FActorSpawnParameters & SpawnParameters) Line 454 C++
NonNativeCAC-Win64-Debug.exe!UWorld::SpawnActor(UClass * Class, const FVector * Location, const FRotator * Rotation, const FActorSpawnParameters & SpawnParameters) Line 304 C++
NonNativeCAC-Win64-Debug.exe!UChildActorComponent::CreateChildActor() Line 571 C++
NonNativeCAC-Win64-Debug.exe!UChildActorComponent::OnRegister() Line 51 C++
NonNativeCAC-Win64-Debug.exe!UActorComponent::ExecuteRegisterEvents() Line 1362 C++
NonNativeCAC-Win64-Debug.exe!UActorComponent::RegisterComponentWithWorld(UWorld * InWorld) Line 1098 C++
NonNativeCAC-Win64-Debug.exe!AActor::IncrementalRegisterComponents(int NumComponentsToRegister) Line 4447 C++
NonNativeCAC-Win64-Debug.exe!AActor::RegisterAllComponents() Line 4346 C++
NonNativeCAC-Win64-Debug.exe!AActor::PostSpawnInitialize(const FTransform & UserSpawnTransform, AActor * InOwner, APawn * InInstigator, bool bRemoteOwned, bool bNoFail, bool bDeferConstruction) Line 3054 C++
NonNativeCAC-Win64-Debug.exe!UWorld::SpawnActor(UClass * Class, const FTransform * UserTransformPtr, const FActorSpawnParameters & SpawnParameters) Line 493 C++
NonNativeCAC-Win64-Debug.exe!UWorld::SpawnActorDeferred<AActor>(UClass * Class, const FTransform & Transform, AActor * Owner, APawn * Instigator, ESpawnActorCollisionHandlingMethod CollisionHandlingOverride) Line 3085 C++
NonNativeCAC-Win64-Debug.exe!UGameplayStatics::BeginDeferredActorSpawnFromClass(const UObject * WorldContextObject, TSubclassOf<AActor> ActorClass, const FTransform & SpawnTransform, ESpawnActorCollisionHandlingMethod CollisionHandlingOverride, AActor * Owner) Line 669 C++
NonNativeCAC-Win64-Debug.exe!UGameplayStatics::execBeginDeferredActorSpawnFromClass(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 49 C++
NonNativeCAC-Win64-Debug.exe!UObject::execCallMathFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 861 C++
NonNativeCAC-Win64-Debug.exe!FFrame::Step(UObject * Context, void * const Z_Param__Result) Line 339 C++
NonNativeCAC-Win64-Debug.exe!UObject::execLetObj(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 2613 C++
NonNativeCAC-Win64-Debug.exe!FFrame::Step(UObject * Context, void * const Z_Param__Result) Line 339 C++
NonNativeCAC-Win64-Debug.exe!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1025 C++
NonNativeCAC-Win64-Debug.exe!ProcessScriptFunction<void (_cdecl*)(UObject *,FFrame &,void *)>(UObject * Context, UFunction * Function, FFrame & Stack, void * const Z_Param_Result, void[Image Removed](UObject *, FFrame &, void *) ExecFtor) Line 828 C++
NonNativeCAC-Win64-Debug.exe!ProcessLocalFunction(UObject * Context, UFunction * Fn, FFrame & Stack, void * const Z_Param__Result) Line 1056 C++
NonNativeCAC-Win64-Debug.exe!UObject::execLocalFinalFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 2919 C++
NonNativeCAC-Win64-Debug.exe!FFrame::Step(UObject * Context, void * const Z_Param__Result) Line 339 C++
NonNativeCAC-Win64-Debug.exe!ProcessLocalScriptFunction(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1025 C++
NonNativeCAC-Win64-Debug.exe!UObject::ProcessInternal(UObject * Context, FFrame & Stack, void * const Z_Param__Result) Line 1083 C++
NonNativeCAC-Win64-Debug.exe!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Z_Param__Result) Line 4907 C++
NonNativeCAC-Win64-Debug.exe!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 1912 C++
NonNativeCAC-Win64-Debug.exe!AActor::ProcessEvent(UFunction * Function, void * Parameters) Line 801 C++
NonNativeCAC-Win64-Debug.exe!AActor::ReceiveBeginPlay() Line 1047 C++
NonNativeCAC-Win64-Debug.exe!AActor::BeginPlay() Line 3468 C++
NonNativeCAC-Win64-Debug.exe!AActor::DispatchBeginPlay(bool bFromLevelStreaming) Line 3384 C++
NonNativeCAC-Win64-Debug.exe!AWorldSettings::NotifyBeginPlay() Line 247 C++
NonNativeCAC-Win64-Debug.exe!AGameStateBase::HandleBeginPlay() Line 179 C++
NonNativeCAC-Win64-Debug.exe!AGameModeBase::StartPlay() Line 188 C++
NonNativeCAC-Win64-Debug.exe!UWorld::BeginPlay() Line 4113 C++
NonNativeCAC-Win64-Debug.exe!UEngine::LoadMap(FWorldContext & WorldContext, FURL URL, UPendingNetGame * Pending, FString & Error) Line 12766 C++
NonNativeCAC-Win64-Debug.exe!UEngine::Browse(FWorldContext & WorldContext, FURL URL, FString & Error) Line 11975 C++
NonNativeCAC-Win64-Debug.exe!UGameInstance::StartGameInstance() Line 530 C++
NonNativeCAC-Win64-Debug.exe!UGameEngine::Start() Line 1135 C++
NonNativeCAC-Win64-Debug.exe!FEngineLoop::Init() Line 3695 C++
NonNativeCAC-Win64-Debug.exe!EngineInit() Line 52 C++
NonNativeCAC-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 157 C++
NonNativeCAC-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 252 C++

Have Comments or More Details?

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

4
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.224.234.24
CreatedJan 26, 2020
ResolvedJul 15, 2021
UpdatedJul 19, 2021
View Jira Issue