Description

When a blueprint graph contains a "Make Struct" node for a blueprinted Struct, changing any pin's type causes the editor to crash when the blueprint is compiled.

Regression:
No - same behavior occurs in 4.16.3 (CL 3561208)

Steps to Reproduce
  1. Open UE4 Editor
  2. Create blueprint based on struct (CustomStruct)
  3. Set MemberVar_0 to a float
  4. Create blueprint based on actor (MyActorBP)
  5. Add Make CutsomStruct node to event graph
  6. Set MemberVar_0 to something other than the default value
  7. Right click struct output pin and promote to variable
  8. Wire variable node to begin play
  9. Compile and save MyActorBP
  10. In CustomStruct, change MemberVar_0 from a float to a String
  11. Switch back to MyActorBP

Result:
Two input pins appear on the "Make struct" node. Additionlly, attempting to compile MyActorBP causes the editor to crash with provided callstack.

Expected:
Make Struct node updates to reflect the changes to the Struct. Actor blueprint using the Struct can be compiled after change are made.

Callstack
LoginId:7156c35640f86204e61b8383f45dee17
EpicAccountId:c807849e05a0413d99e379f2802cae9c

Assertion failed: BoundProperty [File:D:\Build\++UE4+Release-4.17+Compile\Sync\Engine\Source\Editor\BlueprintGraph\Private\MakeStructHandler.cpp] [Line: 115]

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_BlueprintGraph!FKCHandler_MakeStruct::Compile() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\blueprintgraph\private\makestructhandler.cpp:118]
UE4Editor_KismetCompiler!FKismetCompilerContext::CompileFunction() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:1894]
UE4Editor_KismetCompiler!FKismetCompilerContext::CompileFunctions() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3917]
UE4Editor_Kismet!FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:749]
UE4Editor_Kismet!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:189]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:750]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:3291]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:97]
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:305]
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64>::operator()<>() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor_Slate!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64> >() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\templates\tuple.h:497]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:282]
UE4Editor_Slate!<lambda_1002768c627006711ef2f351a87ec0e7>::operator()() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5199]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_1002768c627006711ef2f351a87ec0e7> >() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:232]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5188]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5690]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5670]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1718]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2161]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:881]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:721]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:1009]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3151]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

2
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.16.34.17.14.17.2
Target Fix4.17.2
Fix Commit3637171
CreatedSep 11, 2017
ResolvedSep 11, 2017
UpdatedApr 27, 2018