Description

Compiling a Blueprint that uses a Select node with two different variations of Actor will crash the Editor in 4.9. In 4.8.2 binary, one input of a Select node will be disconnected on restarting the project if the two inputs are from different classes. For example, Actor and a child of Actor as Select inputs. Image attached for clarity.

Reproduced in 4.8.2 binary and Main (//depot/UE4/Promotable-CL-2623997). This is a regression; neither the pin disconnect nor the crash occurred in 4.7.6.

Crash Report:
[Link Removed]

Call Stack:
Assertion failed: (!Term->bIsLiteral) || (CoerceProperty != NULL) [Link Removed] [Line: 373]

UE4Editor_KismetCompiler!FScriptBuilderBase::EmitTermExpr() kismetcompilervmbackend.cpp:375
UE4Editor_KismetCompiler!FScriptBuilderBase::EmitTerm() kismetcompilervmbackend.cpp:887
UE4Editor_KismetCompiler!FScriptBuilderBase::EmitSwitchValue() kismetcompilervmbackend.cpp:1288
UE4Editor_KismetCompiler!FScriptBuilderBase::GenerateCodeForStatement() kismetcompilervmbackend.cpp:1450
UE4Editor_KismetCompiler!FScriptBuilderBase::EmitTerm() kismetcompilervmbackend.cpp:914
UE4Editor_KismetCompiler!FScriptBuilderBase::EmitFunctionCall() kismetcompilervmbackend.cpp:830
UE4Editor_KismetCompiler!FScriptBuilderBase::GenerateCodeForStatement() kismetcompilervmbackend.cpp:1385
UE4Editor_KismetCompiler!FKismetCompilerVMBackend::ConstructFunction() kismetcompilervmbackend.cpp:1522
UE4Editor_KismetCompiler!FKismetCompilerVMBackend::GenerateCodeFromClass() kismetcompilervmbackend.cpp:1479
UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() kismetcompiler.cpp:3601
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() kismetcompilermodule.cpp:99
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() kismetcompilermodule.cpp:173
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:737
UE4Editor_Kismet!FBlueprintEditor::Compile() blueprinteditor.cpp:3019
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:282
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:388
UE4Editor_Slate!FUICommandList::ExecuteAction() uicommandlist.cpp:87
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() stoolbarbuttonblock.cpp:296
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply() delegateinstanceinterface_variadics.h:161
UE4Editor_Slate!TTupleImpl<TIntegerSequence<> >::ApplyAfter_ExplicitReturnType<FReply,TMemberFunctionCaller<SToolBarButtonBlock,FReply() tuple.h:113
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl() delegateinstancesimpl_variadics.inl:282
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() delegatesignatureimpl_variadics.inl:440
UE4Editor_Slate!SButton::OnMouseButtonUp() sbutton.cpp:236
UE4Editor_Slate!<lambda_df946b2745ea2bbab398d4acc9cc3d04>::operator() slateapplication.cpp:4259
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_df946b2745ea2bbab398d4acc9cc3d04> >() slateapplication.cpp:214
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:4262
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:4646
UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:4624
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1403
UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:1708
UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:706
UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:628
user32!<Unknown>
user32!<Unknown>
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:792
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2374
UE4Editor!GuardedMain() launch.cpp:142
UE4Editor!GuardedMainWrapper() launchwindows.cpp:126
UE4Editor!WinMain() launchwindows.cpp:200

Steps to Reproduce

1. Create a new project
2. Create a new Actor Blueprint
3. Create the following setup in the Event Graph:
[Image Removed]
4. Compile (Note: In 4.9, the editor will crash here)
5. Close and reopen the project

Result:
In Main, the editor crashes on compile. In 4.8.2, one of the Select inputs will be disconnected.

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.8.24.9
Target Fix4.9
Fix Commit2625602
Release Commit2625618
CreatedJul 17, 2015
ResolvedJul 20, 2015
UpdatedApr 27, 2018
View Jira Issue