Bug on Casting to Owning Actor of Child Actor from Child

Hello! I’ve encountered this twice, and it was supposedly resolved:

However, it seems to have returned. I have reproduced it 3 times so I’ll post steps below as well as callstack and whatnot:

  1. Create a new project, blank, blueprints, no starter content.\
  2. Create a pawn blueprint class. I’ll call it “main class” from this point.
  3. Create an actor blueprint class. I’ll call it “subactor” from this point.
  4. In main class, creat a child actor component.
  5. In the main class event graph, create an event dispatcher and call it on event begin play.
  6. In the subactor, on event begin play, get the attach parent of the sceneroot, get owner of that, and then cast that to main class.
  7. On cast succeed, bind that event dispatcher from the cast output to a custom event.
  8. In main class, make sure to set the child actor class to the subactor we created.
  9. Save the map, and save everything and close the editor.
  10. Restart the editor, and drag the main class into the map.
  11. Explode

Thank you so much!
I almost forgot, here’s the callstack and everything from the example used above:

Fatal error: [File:D:\Build++UE4+Release-4.14+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\Templates\Casts.cpp] [Line: 11]
Cast of LinkerPlaceholderExportObject /Game/MainClass.MainClass_C:ChildActor_GEN_VARIABLE.ChildActor_GEN_VARIABLE_subactor_C_CAT to Actor failed

UE4Editor_Core!FDebug::AssertFailed() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:332]
UE4Editor_CoreUObject!CastLogError() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\templates\casts.cpp:12]
UE4Editor_Engine!CastChecked() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\public\templates\casts.h:203]
UE4Editor_Engine!UChildActorComponent::Serialize() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\engine\private\components\childactorcomponent.cpp:91]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3414]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2890]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3023]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1271]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1423]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2561]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2609]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::CreateImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4257]
UE4Editor_CoreUObject!FLinkerLoad::ResolveDependencyPlaceholder() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1090]
UE4Editor_CoreUObject!FLinkerLoad::ResolveDeferredDependencies() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:950]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3461]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4111]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4334]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3807]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2884]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3023]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1271]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1423]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2561]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2609]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::CreateImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4257]
UE4Editor_CoreUObject!FLinkerLoad::ResolveAllImports() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1196]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeBlueprint() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1284]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3461]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4111]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4334]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3807]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2884]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3023]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1271]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1423]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2561]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2609]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2105]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2015]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:699]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:404]
UE4Editor_CoreUObject!GetPackageLinker() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linker.cpp:657]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1196]
UE4Editor_CoreUObject!LoadPackageInternal() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1423]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2561]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImportInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2609]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2327]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2105]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2015]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:699]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:404]
UE4Editor_CoreUObject!GetPackageLinker() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\linker.cpp:657]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1196]
UE4Editor_CoreUObject!LoadPackage() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1437]
UE4Editor_CoreUObject!ResolveName() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:722]
UE4Editor_CoreUObject!StaticLoadObjectInternal() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:809]
UE4Editor_CoreUObject!StaticLoadObject() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:869]
UE4Editor_UnrealEd!FAssetData::GetAsset() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\assetregistry\public\assetdata.h:223]
UE4Editor_UnrealEd!FAssetDragDropOp::Init() [d:\build++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\private\draganddrop\assetdragdropop.cpp:149]
UE4Editor_UnrealEd!FAssetDragDropOp::New() [d:\build++ue4+release-4.14+compile\sync\engine\source\editor\unrealed\private\draganddrop\assetdragdropop.cpp:26]
UE4Editor_ContentBrowser!SAssetView::OnDraggingAssetItem() [d:\build++ue4+release-4.14+compile\sync\engine\source\editor\contentbrowser\private\sassetview.cpp:3691]
UE4Editor_ContentBrowser!TMemberFunctionCaller::operator()() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:161]
UE4Editor_ContentBrowser!TTupleImpl >::ApplyAfter,FGeometry const & __ptr64,FPointerEvent const &() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\public\delegates\tuple.h:116]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,FReply __cdecl(FGeometry const & __ptr64,FPointerEvent const & __ptr64)>::Execute() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:318]
UE4Editor_ContentBrowser!TBaseDelegate::Execute() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:522]
UE4Editor_ContentBrowser!STableRow >::OnDragDetected() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\slate\public\widgets\views\stablerow.h:564]
UE4Editor_Slate!::operator()() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5122]
UE4Editor_Slate!FEventRouter::Route >() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:215]
UE4Editor_Slate!FSlateApplication::RoutePointerMoveEvent() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5120]
UE4Editor_Slate!FSlateApplication::ProcessMouseMoveEvent() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5653]
UE4Editor_Slate!FSlateApplication::OnMouseMove() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5592]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1693]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2071]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:814]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:678]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:951]
UE4Editor!FEngineLoop::Tick() [d:\build++ue4+release-4.14+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2811]
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

Merry Christmas, Happy Hanukkah, or just Happy Holidays :stuck_out_tongue:
Thanks again!

Hey Skunkmeister-

The issue in the report that you linked has been fixed for 4.15 and will be included in the 4.15 release. You can download the 4.15 branch from GitHub to see if the fix has already gone in there. If you are still encountering this issue after 4.15, feel free to comment on this post to reopen for further investigation.

Cheers

Thank you good sir! (You guys are amazing well done, I really respect your presence here during the holidays, bravo.