Description

REGRESSION: No, occurs in 4.17 (doesn't repro in 4.16 because orphaned pins wasn't a feature)

Crash occurs when the user attempts to use a struct containing a deleted struct in a blueprint.

Steps to Reproduce
  1. Open QAGame in editor.
  2. Create two structs named Inner and Outer.
  3. Open the Outer struct and set the member variable to Inner struct.
  4. Create and open an actor blueprint.
  5. Add two Make Outer struct nodes.
  6. On one of the Make nodes, split the output pin twice (will expose a bool pin).
  7. On the other Make node, splits the input pin once (will also expose a bool pin).
  8. Link the two bools together.
  9. Compile.
  10. Close blueprint and save all three assets.
  11. Force Delete the Inner struct asset.
  12. Right-click the blueprint and select Reload.
  13. Open the blueprint.
  14. Wire the struct output to a Set-By-Ref node (or anything that gets executed).
  15. Connect the Set-By-Ref node to Event Begin Play.
  16. Compile.

RESULT

Crash

Callstack
Assertion failed: !PinRef->bWasTrashed [File:E:\Release\Engine\Source\Runtime\Engine\Private\EdGraph\EdGraphPin.cpp] [Line: 1718] 

KERNELBASE.dll!UnknownFunction []
UE4Editor-ApplicationCore.dll!FWindowsErrorOutputDevice::Serialize() [e:\release\engine\source\runtime\applicationcore\private\windows\windowserroroutputdevice.cpp:65]
UE4Editor-Core.dll!FOutputDevice::Logf__VA() [e:\release\engine\source\runtime\core\private\misc\outputdevice.cpp:70]
UE4Editor-Core.dll!FDebug::AssertFailed() [e:\release\engine\source\runtime\core\private\misc\assertionmacros.cpp:409]
UE4Editor-Engine.dll!UEdGraphPin::SerializePin() [e:\release\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1719]
UE4Editor-Engine.dll!UEdGraphPin::Serialize() [e:\release\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1497]
UE4Editor-Engine.dll!UEdGraphPin::SerializePin() [e:\release\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1827]
UE4Editor-Engine.dll!UEdGraphPin::SerializePinArray() [e:\release\engine\source\runtime\engine\private\edgraph\edgraphpin.cpp:1663]
UE4Editor-Engine.dll!UEdGraphNode::Serialize() [e:\release\engine\source\runtime\engine\private\edgraph\edgraphnode.cpp:443]
UE4Editor-BlueprintGraph.dll!UK2Node::Serialize() [e:\release\engine\source\editor\blueprintgraph\private\k2node.cpp:115]
UE4Editor-BlueprintGraph.dll!UK2Node_Variable::Serialize() [e:\release\engine\source\editor\blueprintgraph\private\k2node_variable.cpp:30]
UE4Editor-BlueprintGraph.dll!UK2Node_MakeStruct::Serialize() [e:\release\engine\source\editor\blueprintgraph\private\k2node_makestruct.cpp:358]
UE4Editor-CoreUObject.dll!FArchiveHasReferences::FArchiveHasReferences() [e:\release\engine\source\runtime\coreuobject\private\serialization\archivehasreferences.cpp:46]
UE4Editor-CoreUObject.dll!FArchiveHasReferences::GetAllReferencers() [e:\release\engine\source\runtime\coreuobject\private\serialization\archivehasreferences.cpp:87]
UE4Editor-CoreUObject.dll!FArchiveHasReferences::GetAllReferencers() [e:\release\engine\source\runtime\coreuobject\private\serialization\archivehasreferences.cpp:68]
UE4Editor-UnrealEd.dll!FReplaceReferenceHelper::FindAndReplaceReferences() [e:\release\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:89]
UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() [e:\release\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:2025]
UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::BatchReplaceInstancesOfClass() [e:\release\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1474]
UE4Editor-Kismet.dll!FBlueprintCompilationManagerImpl::FlushReinstancingQueueImpl() [e:\release\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:961]
UE4Editor-Kismet.dll!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl() [e:\release\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:194]
UE4Editor-UnrealEd.dll!FKismetEditorUtilities::CompileBlueprint() [e:\release\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:745]
UE4Editor-Kismet.dll!FBlueprintEditor::Compile() [e:\release\engine\source\editor\kismet\private\blueprinteditor.cpp:3193]
UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [e:\release\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor-Kismet.dll!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [e:\release\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor-Slate.dll!FUICommandList::ExecuteAction() [e:\release\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:97]
UE4Editor-Slate.dll!SToolBarButtonBlock::OnClicked() [e:\release\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:306]
UE4Editor-Slate.dll!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64>::operator()<>() [e:\release\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:165]
UE4Editor-Slate.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64> >() [e:\release\engine\source\runtime\core\public\templates\tuple.h:497]
UE4Editor-Slate.dll!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() [e:\release\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor-Slate.dll!TBaseDelegate<FReply>::Execute() [e:\release\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:537]
UE4Editor-Slate.dll!SButton::OnMouseButtonUp() [e:\release\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:282]
UE4Editor-Slate.dll!<lambda_1002768c627006711ef2f351a87ec0e7>::operator()() [e:\release\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5254]
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_1002768c627006711ef2f351a87ec0e7> >() [e:\release\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:234]
UE4Editor-Slate.dll!FSlateApplication::RoutePointerUpEvent() [e:\release\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5243]
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonUpEvent() [e:\release\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5745]
UE4Editor-Slate.dll!FSlateApplication::OnMouseUp() [e:\release\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5725]
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage() [e:\release\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1725]
UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage() [e:\release\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2171]
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage() [e:\release\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:888]
UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc() [e:\release\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:725]
USER32.dll!UnknownFunction []
USER32.dll!UnknownFunction []
UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages() [e:\release\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:129]
UE4Editor.exe!FEngineLoop::Tick() [e:\release\engine\source\runtime\launch\private\launchengineloop.cpp:3219]
UE4Editor.exe!GuardedMain() [e:\release\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor.exe!GuardedMainWrapper() [e:\release\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor.exe!WinMain() [e:\release\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32.dll!UnknownFunction []
ntdll.dll!UnknownFunction []
ntdll.dll!UnknownFunction []

Have Comments or More Details?

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

2
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint Compiler
Affects Versions4.174.18
Target Fix4.18
Fix Commit3672355
Release Commit3672355
CreatedSep 21, 2017
ResolvedSep 29, 2017
UpdatedApr 1, 2019