Description

Moving a property from a recently reparented BP to its new parent will assert in 

FBlueprintCompileReinstancer::MoveDependentSkelToReinst at 

ensure(PrevStructSize == NewStructSize)

This only seems to happen with non primitive types. 

Steps to Reproduce
  • Create an Actor Blueprint "P1" - compile and save
  • Create a child Blueprint of P1 "P1_child"
  • Add a Niagara System Object property to P1_child - compile and save
  • Create another actor BP "P2" - compile and save
  • Reparent P1_child to be a child of P2
  • Right click the Niagara System property and select "Move to parent"
  • Compile P2
  • Assert
Callstack

>    [Inline Frame] UnrealEditor-UnrealEd.dll!FBlueprintCompileReinstancer::MoveDependentSkelToReinst::__l11::<lambda_2>::operator()() Line 1796    C++
     UnrealEditor-UnrealEd.dll!FBlueprintCompileReinstancer::MoveDependentSkelToReinst(UClass * OwnerClass, TMap<UClass *,UClass *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<UClass *,UClass *,0>> & NewSkeletonToOldSkeleton) Line 1796    C++
     UnrealEditor-Kismet.dll!FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl(bool bSuppressBroadcastCompiled, TArray<UBlueprint *,TSizedDefaultAllocator<32>> * BlueprintsCompiled, TArray<UBlueprint *,TSizedDefaultAllocator<32>> * BlueprintsCompiledOrSkeletonCompiled, FUObjectSerializeContext * InLoadContext) Line 1019    C++
     UnrealEditor-Kismet.dll!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl(const FBPCompileRequestInternal & Request) Line 303    C++
     UnrealEditor-Kismet.dll!FBlueprintCompilationManager::CompileSynchronously(const FBPCompileRequest & Request) Line 3570    C++
     UnrealEditor-UnrealEd.dll!FKismetEditorUtilities::CompileBlueprint(UBlueprint * BlueprintObj, EBlueprintCompileOptions CompileFlags, FCompilerResultsLog * pResults) Line 785    C++
     UnrealEditor-Kismet.dll!FBlueprintEditor::Compile() Line 4106    C++
     [Inline Frame] UnrealEditor-Kismet.dll!Invoke(void(FBlueprintEditor::*)()) Line 66    C++
     [Inline Frame] UnrealEditor-Kismet.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(FBlueprintEditor::*)() &) Line 311    C++
     UnrealEditor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,1,void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfSafe() Line 298    C++
     UnrealEditor-Slate.dll!TDelegate<void __cdecl(void),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>() Line 570    C++
     [Inline Frame] UnrealEditor-Slate.dll!FUIAction::Execute() Line 139    C++
     UnrealEditor-Slate.dll!FUICommandList::ExecuteAction(const TSharedRef<FUICommandInfo const ,1> InUICommandInfo) Line 117    C++
     UnrealEditor-Slate.dll!SToolBarButtonBlock::OnClicked() Line 446    C++
     [Inline Frame] UnrealEditor-Slate.dll!Invoke(FReply(SToolBarButtonBlock::*)()) Line 66    C++
     [Inline Frame] UnrealEditor-Slate.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(FReply(SToolBarButtonBlock::*)() &) Line 311    C++
     UnrealEditor-Slate.dll!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,1,FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 281    C++
     UnrealEditor-Slate.dll!TDelegate<FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() Line 549    C++
     UnrealEditor-Slate.dll!SButton::ExecuteOnClick() Line 465    C++
     UnrealEditor-Slate.dll!SButton::OnMouseButtonUp(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 390    C++
     [Inline Frame] UnrealEditor-Slate.dll!FSlateApplication::RoutePointerUpEvent::__l8::<lambda_3>::operator()(const FArrangedWidget &) Line 5220    C++
     UnrealEditor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,`FSlateApplication::RoutePointerUpEvent'::`8'::<lambda_3>>(FSlateApplication * ThisApplication, FEventRouter::FToLeafmostPolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerUpEvent::__l8::<lambda_3> & Lambda, ESlateDebuggingInputEvent DebuggingInputEvent) Line 442    C++
     UnrealEditor-Slate.dll!FSlateApplication::RoutePointerUpEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 5206    C++
     UnrealEditor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent(const FPointerEvent & MouseEvent) Line 5775    C++
     UnrealEditor-Slate.dll!FSlateApplication::OnMouseUp(const EMouseButtons::Type Button, const UE::Math::TVector2<double> CursorPos) Line 5740    C++
     UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2231    C++
     UnrealEditor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,1> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2738    C++
     UnrealEditor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1907    C++
     [Inline Frame] UnrealEditor-ApplicationCore.dll!WindowsApplication_WndProc(HWND__ *) Line 931    C++
     UnrealEditor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 937    C++

Have Comments or More Details?

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

0
Login to Vote

Fixed
Fix Commit26865273
Main Commit26865331
Release Commit26865286
CreatedJul 20, 2023
ResolvedAug 5, 2023
UpdatedAug 9, 2023