Description

Collapsing an event binding to a function results in a function that takes in a delegate as an input. This function existing ends up causing any references to this blueprint class in another class to crash the editor.

Please note, this issue generates multiple callstacks, I'll be providing the two I've gotten in the callstack section.

Regression?: No
This also occurs in 4.13.2

Steps to Reproduce
  1. Create a new blank blueprint project
  2. Add a new blueprint based off of actor
  3. Inside of the new blueprint, add a new Event Dispatcher and a new Custom Event
  4. Bind the Custom Event to the Event Dispatcher (see attached image)
  5. Highlight the nodes involved in that binding, right-click and select "Collapse to Function"
  6. Compile and Save the blueprint
  7. Create a new blueprint class based off of actor
  8. Add a variable based off the blueprint created in step 2
  9. Add a get node for that variable
  10. Attempt to drag off the get node's output pin
    Result: The editor crashes
    Expected: The editor should not crash and the context menu should appear

Note: If the crash does not occur, please ensure that both blueprints have been compiled and saved, then try again.

Callstack
 UE4Editor_Engine!UBlueprintGeneratedClass::GetAuthoritativeClass() blueprintgeneratedclass.cpp:149 
UE4Editor_BlueprintGraph!FMemberReference::SetFromField<UFunction>() memberreference.h:120 
UE4Editor_BlueprintGraph!FMemberReference::FillSimpleMemberReference<UFunction>() memberreference.h:480 
UE4Editor_BlueprintGraph!UEdGraphSchema_K2::ConvertPropertyToPinType() edgraphschema_k2.cpp:3338 
UE4Editor_BlueprintGraph!UEdGraphSchema_K2::FunctionHasParamOfType() edgraphschema_k2.cpp:941 
UE4Editor_BlueprintGraph!BlueprintActionFilterImpl::IsFunctionMissingPinParam() blueprintactionfilter.cpp:1292 
UE4Editor_BlueprintGraph!FBlueprintActionFilter::IsFilteredByThis() blueprintactionfilter.cpp:1950 
UE4Editor_BlueprintGraph!FBlueprintActionFilter::IsFiltered() blueprintactionfilter.cpp:1892 
UE4Editor_Kismet!FBlueprintActionMenuBuilderImpl::FMenuSectionDefinition::MakeMenuItems() blueprintactionmenubuilder.cpp:412 
UE4Editor_Kismet!FBlueprintActionMenuBuilder::RebuildActionList() blueprintactionmenubuilder.cpp:533 
UE4Editor_Kismet!FBlueprintActionMenuUtils::MakeContextMenu() blueprintactionmenuutils.cpp:679 
UE4Editor_Kismet!SBlueprintActionMenu::CollectAllActions() sblueprintactionmenu.cpp:447 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,SBlueprintActionMenu,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl.h:318 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,SBlueprintActionMenu,0,void __cdecl() delegateinstancesimpl.h:425 
UE4Editor_GraphEditor!SGraphActionMenu::RefreshAllActions() sgraphactionmenu.cpp:344 
UE4Editor_GraphEditor!SGraphActionMenu::Construct() sgraphactionmenu.cpp:334 
UE4Editor_Kismet!TDecl<SGraphActionMenu,RequiredArgs::T0RequiredArgs>::operator<<=() declarativesyntaxsupport.h:1079 
UE4Editor_Kismet!SBlueprintActionMenu::Construct() sblueprintactionmenu.cpp:256 
UE4Editor_Kismet!TDecl<SBlueprintActionMenu,RequiredArgs::T1RequiredArgs<TSharedRef<FBlueprintEditor,0> && __ptr64> >::operator<<=() declarativesyntaxsupport.h:1079 
UE4Editor_Kismet!FBlueprintEditor::OnCreateGraphActionMenu() blueprinteditor.cpp:3054 
UE4Editor_Kismet!TMemberFunctionCaller<FBlueprintEditor,FActionMenuContent() delegateinstanceinterface.h:161 
UE4Editor_Kismet!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<FBlueprintEditor,FActionMenuContent() tuple.h:116 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,FActionMenuContent __cdecl() delegateinstancesimpl.h:318 
UE4Editor_GraphEditor!TBaseDelegate<FActionMenuContent,UEdGraph * __ptr64,FVector2D const & __ptr64,TArray<UEdGraphPin * __ptr64,FDefaultAllocator> const & __ptr64,bool,TBaseDelegate<void> >::Execute() delegatesignatureimpl.inl:522
UE4Editor_GraphEditor!SGraphEditorImpl::GraphEd_OnGetContextMenuFor() sgrapheditorimpl.cpp:497 
UE4Editor_GraphEditor!TMemberFunctionCaller<SGraphEditorImpl,FActionMenuContent() delegateinstanceinterface.h:161 
UE4Editor_GraphEditor!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SGraphEditorImpl,FActionMenuContent() tuple.h:116 
UE4Editor_GraphEditor!TBaseSPMethodDelegateInstance<0,SGraphEditorImpl,0,FActionMenuContent __cdecl() delegateinstancesimpl.h:318 
UE4Editor_GraphEditor!TBaseDelegate<FActionMenuContent,FGraphContextMenuArguments const & __ptr64>::Execute() delegatesignatureimpl.inl:522 
UE4Editor_GraphEditor!SGraphPanel::SummonContextMenu() sgraphpanel.cpp:1029 
UE4Editor_GraphEditor!FDragConnection::DroppedOnPanel() dragconnection.cpp:273 
UE4Editor_GraphEditor!SGraphPanel::OnDrop() sgraphpanel.cpp:935 
UE4Editor_Slate!<lambda_6fe3fac4210ea4fdbbd9f162046616f6>::operator() slateapplication.cpp:5037 
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_6fe3fac4210ea4fdbbd9f162046616f6> >() slateapplication.cpp:215 
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:5033 
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:5462 
UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:5439 
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1652 
UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:2071 
UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:814 
UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:678 
user32!<Unknown> 
user32!<Unknown> 
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:951 
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2811 
UE4Editor!GuardedMain() launch.cpp:152 
UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 
UE4Editor!WinMain() launchwindows.cpp:202 
UE4Editor!__scrt_common_main_seh() exe_common.inl:264 
kernel32!<Unknown> 
ntdll!<Unknown> 
 UE4Editor_Engine!UBlueprintGeneratedClass::GetAuthoritativeClass() blueprintgeneratedclass.cpp:149 
UE4Editor_BlueprintGraph!FMemberReference::SetFromField<UFunction>() memberreference.h:120 
UE4Editor_BlueprintGraph!FMemberReference::FillSimpleMemberReference<UFunction>() memberreference.h:480 
UE4Editor_BlueprintGraph!UEdGraphSchema_K2::ConvertPropertyToPinType() edgraphschema_k2.cpp:3338 
UE4Editor_BlueprintGraph!UK2Node_CallFunction::CreatePinsForFunctionCall() k2node_callfunction.cpp:883 
UE4Editor_BlueprintGraph!UK2Node_CallFunction::AllocateDefaultPins() k2node_callfunction.cpp:605 
UE4Editor_BlueprintGraph!UK2Node_CallFunction::ReallocatePinsDuringReconstruction() k2node_callfunction.cpp:644 
UE4Editor_BlueprintGraph!UK2Node::ReconstructNode() k2node.cpp:421 
UE4Editor_BlueprintGraph!UEdGraphSchema_K2::ReconstructNode() edgraphschema_k2.cpp:4216 
UE4Editor_UnrealEd!FBlueprintEditorUtils::RefreshExternalBlueprintDependencyNodes() blueprinteditorutils.cpp:586 
UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() kismetcompiler.cpp:3989 
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() kismetcompilermodule.cpp:100 
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() kismetcompilermodule.cpp:216 
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:784 
UE4Editor_Kismet!FBlueprintEditor::Compile() blueprinteditor.cpp:3202 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl.h:318 
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl() delegateinstancesimpl.h:424 
UE4Editor_Slate!FUICommandList::ExecuteAction() uicommandlist.cpp:92 
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() stoolbarbuttonblock.cpp:300 
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply() delegateinstanceinterface.h:161 
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SToolBarButtonBlock,FReply() tuple.h:116 
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl() delegateinstancesimpl.h:318 
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() delegatesignatureimpl.inl:522 
UE4Editor_Slate!SButton::OnMouseButtonUp() sbutton.cpp:275 
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator() slateapplication.cpp:5010 
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() slateapplication.cpp:215 
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:4999 
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:5462 
UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:5439 
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1652 
UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:2071 
UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:814 
UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:678 
user32!<Unknown> 
user32!<Unknown> 
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:951 
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2811 
UE4Editor!GuardedMain() launch.cpp:152 
UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 
UE4Editor!WinMain() launchwindows.cpp:202 
UE4Editor!__scrt_common_main_seh() exe_common.inl:264 
kernel32!<Unknown> 
ntdll!<Unknown> 

Have Comments or More Details?

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

0
Login to Vote

Cannot Reproduce
ComponentUE - Gameplay - Blueprint
Affects Versions4.134.144.15
Target Fix4.15
CreatedNov 28, 2016
ResolvedNov 28, 2016
UpdatedFeb 5, 2017