4.17 Child Actors Issues Con't (Packaging)

I really thought Child Actors were more stable…but they seem to just keep on giving me issues sadly. Now…this is what I get when packaging. Edited out some sensitive info with asterisks (***). Found this https://answers.unrealengine.com/questions/604285/416-updated-project-crashes-skel-linkerplaceholder.html issue, going to try out these. Yesterday I did find an issue with the Properties/Child Actor Templates not appearing. Instead of deleting and recreating them on my Character’s body (so not through logic), I refreshed it by clicking on the actor again (https://answers.unrealengine.com/questions/718250/child-actor-components-lose-child-actor-template.html).

Error: begin: stack for UAT
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: === Handled ensure: ===
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: 
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Ensure condition failed: ChildActorTemplate == nullptr [File:D:\Build\++UE4+Release-4.17+Compile\Sync\Engine\Source\Runtime\Engine\Private\Components\ChildActorComponent.cpp] [Line: 95]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_1 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Stack: 
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Core.dll!FWindowsPlatformStackWalk::StackWalkAndDump() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:200]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Core.dll!FDebug::EnsureFailed() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:233]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Core.dll!FDebug::OptionallyLogFormattedEnsureMessageReturningFalse() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:360]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Engine.dll!UChildActorComponent::Serialize() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\engine\private\components\childactorcomponent.cpp:95]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::Preload() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3288]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2749]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::LoadAllObjects() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2890]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!LoadPackageInternal() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1303]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::VerifyImportInner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2420]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2176]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::VerifyImportInner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2468]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateImport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4150]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::ResolveDependencyPlaceholder() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1301]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::ResolveDeferredDependencies() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1161]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::Preload() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3335]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4004]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::IndexToObject() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4227]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3697]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2743]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::GetExportLoadClass() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2771]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3507]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::Verify() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1955]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::FinalizeCreation() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:1865]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:734]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::CreateLinker() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:437]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!GetPackageLinker() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linker.cpp:693]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!LoadPackageInternal() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1215]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.17+compile\
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: end: stack for UAT
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_2 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_3 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_4 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_5 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_6 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: Found unexpected ChildActorTemplate LinkerPlaceholderExportObject /Game/***VR/Core/Characters/CharacterRedo/BP_***CharacterBase.PLACEHOLDER-INST_of_PLACEHOLDER-CLASS__BP_InventorySlot_C_7 when ChildActorClass is null
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FLinkerLoad::operator<<() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4438]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!UObjectProperty::SerializeItem() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\propertyobject.cpp:64]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!FPropertyTag::SerializeTaggedProperty() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\propertytag.cpp:188]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!UStruct::SerializeTaggedProperties() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:1073]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!UObject::SerializeScriptProperties() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:1282]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-CoreUObject.dll!UObject::Serialize() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:1216]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Engine.dll!UActorComponent::Serialize() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\engine\private\components\actorcomponent.cpp:1778]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Engine.dll!USceneComponent::Serialize() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\engine\private\components\scenecomponent.cpp:2211]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: LogOutputDevice: Error: UE4Editor-Engine.dll!UChildActorComponent::Serialize() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\engine\private\components\childactorcomponent.cpp:59]
    UATHelper: Packaging (Windows (64-bit)): Cook: LogInit: Display: NOTE: Only first 50 errors displayed.

Hello ,

I was unable to reproduce the issue you are experiencing on our end. I have a couple of questions about your issue to help narrow down the issue you are experiencing.

  1. Can you reproduce this issue in a new project?
  2. If so can you provide a detailed list of steps so that I can reproduce this issue on our end?
  3. Can you provide the full cook log for your issue?

Thanks!

Heh, I just tried to migrate them over to both a 4.17 and 4.18 project, but I can’t even open any BPs on either… So, I suppose for 1) No, I can’t repro, because they won’t even work on another project.

  1. These types of errors/bugs that occur would be hard to repro on our end as you can imagine… a million things could have occurred to get there. I completely understand that’s not very helpful on your end, but that is why I provided you with the errors.

  2. If I could get an email or forum name I would do so, not publicly, as a lot of the information is sensitive. Thanks!

But, I am going to see if I can do a similar setup in a blank project and hope for it to ■■■■ out and I could just send that project.

Thanks for the response!

Also, to workaround this issue, I just spawn and then attach them. And they work as intended. Exposing all those variables to Spawn, so I can edit them before Spawning them.

So, I know it’s not an issue with the Blueprints, but just how UE4 handles the Child Actors.

I am also having this issue. I tried to use the following in my component, which as a child actor.

 void Utw_placement_arm::InitializeComponent()
 {
     Super::InitializeComponent();
 
     ensure(child_static_mesh_actor != nullptr);
     child_static_mesh_actor->SetChildActorClass(AtwStaticMeshActor::StaticClass());
     child_static_mesh_actor->SetMobility(EComponentMobility::Movable);
 }

I was able to run in the editor without any problem. When I tried to package the game for a dedicated server, I got the same error as the OP.

Hello again ,

You can send your package log here https://forums.unrealengine.com/member/680446--g and click the private message button. I do have a couple of additional questions for you and mgumley about your issue.

  1. Are you using C++ or blueprints for your project where the issue occurs?
  2. What is the “chile actor template” you are using?
  3. Are you packaging for shipping or development?

Thank you!

Hello,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will follow up.

Thanks!

Hey guys, had the same problem after upgrading from 4.15 to 4.18 and trying to package
l could fix it by reverting to an old hotfix from a version from 4.15 or before in the ChildActorComponent.cpp

replace this block starting in line 92

if (childactorclass == nullptr)
	{
		// it is unknown how this state can come to be, so for now we'll simply correct the issue and record that it occurs and 
		// and if it is occurring frequently, then investigate how the state comes to pass
		if (!ensurealwaysmsgf(childactortemplate == nullptr, text("found unexpected childactortemplate %s when childactorclass is null"), *childactortemplate->getfullname()))
		{
			childactortemplate = nullptr;
		}
	}
	// since we sometimes serialize properties in instead of using duplication and we can end up pointing at the wrong template
	else if (!ar.ispersistent() && childactortemplate)
	{
		if (istemplate())
		{
			// if we are a template and are not pointing at a component we own we'll need to fix that
			if (childactortemplate->getouter() != this)
			{
				const fstring templatename = fstring::printf(text("%s_%s_cat"), *getname(), *childactorclass->getname());
				childactortemplate = castchecked<aactor>(staticduplicateobject(childactortemplate, this, *templatename));
			}
		}
		else
		{
			// because the template may have fixed itself up, the tagged property delta serialized for 
			// the instance may point at a trashed template, so always repoint us to the archetypes template
			childactortemplate = castchecked<uchildactorcomponent>(getarchetype())->childactortemplate;
		}
	}

with this

if (!Ar.IsPersistent() && ChildActorTemplate && ChildActorTemplate->GetOuter() != this && IsTemplate())
	{
		if (IsTemplate())
		{
			// If we are a template and are not pointing at a component we own we'll need to fix that
			if (ChildActorTemplate->GetOuter() != this)
			{
				const FString TemplateName = FString::Printf(TEXT("%s_%s_CAT"), *GetName(), *ChildActorClass->GetName());
				ChildActorTemplate = CastChecked<AActor>(StaticDuplicateObject(ChildActorTemplate, this, *TemplateName));
			}
		}
		else
		{
			// Because the template may have fixed itself up, the tagged property delta serialized for 
			// the instance may point at a trashed template, so always repoint us to the archetypes template
			ChildActorTemplate = CastChecked<UChildActorComponent>(GetArchetype())->ChildActorTemplate;
		}
	}

Seems like this was an actual solution. Thanks for that.

Thank you. Been trying to package all day in 4.19.2, this has fixed it for me.

for anyone wondering this bug still exists in 4.25 hasnt been fixed