Crash on reparent (new info for UE-14733?)

Hey. Here is an explicit set of details on an instance in which engine crashed during a reparent. This appears to be something you have already noticed, but can’t find cause of? In which case, I’m here to provide my own information.

-----------------[SCENARIO]------------------

Default Pawn → BP_Pawn → BP_PlayerPawn. Wanted to create a new version of BP_PlayerPawn that did not use default pawn’s collision component root. Therefore, I attempted to reparent BP_Pawn class to simply be a child of Pawn. Before doing this, I removed components I wanted to “preserve” in my PlayerPawn with Cut, planning on pasting again after transition. engine crashed during re-parent process.

-------------[CRASH REPORT]---------------

MachineId:0C37E1DA4FBB7B1CC4104E81CE603F51
EpicAccountId:d561d110ed77453aad9a9574d4009d80

Unknown exception - code 00000001 (first/second chance not available)

"Assertion failed: Object [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.8\Engine\Source\Editor\UnrealEd\Private\EditorTransaction.cpp] [Line: 156]

KERNELBASE
UE4Editor_Core!FOutputDeviceWindowsError::Serialize() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
UE4Editor_Core!FOutputDevice::Logf__VA() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\misc\outputdevice.cpp:355]
UE4Editor_UnrealEd!operator<<() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\editortransaction.cpp:157]
UE4Editor_UnrealEd!operator<<() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\public\containers\array.h:1212]
UE4Editor_UnrealEd!operator<<() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\public\containers\array.h:1212]
UE4Editor_UnrealEd!UTransBuffer::Serialize() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\editortransaction.cpp:405]
UE4Editor_UnrealEd!TFindObjectReferencers::TFindObjectReferencers() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\coreuobject\public\serialization\archiveuobject.h:513]
UE4Editor_UnrealEd!FReplaceReferenceHelper::FindAndReplaceReferences() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:62]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReplaceInstancesOfClass() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1141]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceInner() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:474]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:561]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:200]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:739]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\kismet\private\blueprinteditor.cpp:3016]
UE4Editor_Kismet!FBlueprintEditor::ReparentBlueprint_NewParentChosen() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\kismet\private\blueprinteditor.cpp:2563]
UE4Editor_Kismet!FBlueprintGlobalOptionsDetails::OnClassPicked() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\editor\kismet\private\blueprintdetailscustomization.cpp:4164]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintGlobalOptionsDetails,0,void cdecl(UClass * ptr64)>::ExecuteIfSafe() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:388]
UE4Editor_ClassViewer!SClassViewer::OnClassViewerSelectionChanged() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\editor\classviewer\private\sclassviewer.cpp:2205]
UE4Editor_ClassViewer!TBaseSPMethodDelegateInstance<0,SClassViewer,0,TTypeWrapper cdecl(TSharedPtr,enum ESelectInfo::Type)>::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:282]
UE4Editor_ClassViewer!TBaseSPMethodDelegateInstance<0,SClassViewer,0,void cdecl(TSharedPtr,enum ESelectInfo::Type)>::ExecuteIfSafe() [d:\buildfarm\buildmachine++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:388]
UE4Editor_ClassViewer!TBaseDelegate,enum ESelectInfo::Type>::ExecuteIfBound() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:519]
UE4Editor_ClassViewer!SListView >::Private_SignalSelectionChanged() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\slate\public\widgets\views\slistview.h:609]
UE4Editor_ClassViewer!STableRow >::OnMouseButtonUp() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\slate\public\widgets\views\stablerow.h:437]
UE4Editor_Slate!::operator()() [d:\buildfarm\buildmachine
++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4170]
UE4Editor_Slate!FEventRouter::Route >() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:212]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4173]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4133]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:1406]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:1711]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:706]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsapplication.cpp:628]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:792]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\launchengineloop.cpp:2323]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.8\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]

Hi ,

First, just wanted to note that this isn’t related to UE-14733, which had a very different call stack. Thanks for trying to help with that, though!

I attempted to reproduce this here, but was unsuccessful. To test, I created a new blank project. In it, I created a Blueprint based on Default Pawn and named it BP_Pawn. I then created a child of that called BP_PlayerPawn. Inside BP_Pawn, I copied mesh and movement components, then went to File > Reparent Blueprint and selected Pawn. It gave me warning “Reparenting this blueprint may cause data loss. Continue reparenting?”. I clicked Reparent, and it was successful.

Are you able to reproduce this in a new project, or only your current project? What changes had you made to DefaultPawn’s child BP before reparenting it to Pawn? Any steps or details I may have missed? Thanks!

It’s annoying, but I’m so far passed this bug at this point that I can’t recall all of relevant details precisely. I ultimately just ended up deleting all of actors after removing their components and started again from scratch (didn’t take long to re-create them with components I had set up). There is definitely some type of problem that occurs with re-parenting under certain conditions though cause I know this isn’t first time engine has crashed while I’ve attempted to re-parent.

All I can clearly recall was sequence of operations that directly lead up to event, but not what I had been doing in general during my programming. It was probably some contextual detail I can’t recall that somehow caused problem. Sorry!

Hey ,

It sounds like this isn’t a consistent crash, so it’ll be harder to nail down. We’ll keep attempting to reproduce it here, but if you get crash again and can give us some more details, that would be great. I’ll go ahead and resolve this post for now, but if it happens again and you can give us some more information, please reply here and we’ll continue from there. Thanks!