Description

If the user uses a Blueprint Interface in children Blueprints and then goes to the parent Blueprint and tries to implement the same Blueprint Interface in the parent Blueprint, the editor will crash.

Not a regression. Also occurs in 4.12.5 Release.

Steps to Reproduce
  1. Open UE4, any project
  2. Create a Blueprint interface with one function that has one input and one output
  3. Create a Actor Blueprint.
  4. Create a child class of the Actor Blueprint.
  5. Implement the Blueprint Interface to the child Blueprint by navigating to the Class Settings and in the Details panel, clicking Add under Interfaces.
  6. In the Interfaces drop-down in the My Blueprint tab, double-click the Interfaces function to edit it.
  7. Add simple logic to the Interface function, such as add or multiply by a constant value and return the result.
  8. Create a child class of step 4 child Actor Blueprint. (a child of the child)
  9. Implement the Blueprint Interface and add different logic to the function, as in make sure the Interface function is not the same in the first and second child blueprints.
  10. Open original Actor Blueprint and implement the Blueprint Interface.
  11. Compile original Actor Blueprint.

RESULTS:
Editor crashes with attached crash log.

EXPECTED:
Editor doesn't crash.

Callstack

Assertion failed: !InClass || (InClass->ClassWithin && InClass->ClassConstructor) [Link Removed] [Line: 2201]

UE4Editor_Core!FDebug::AssertFailed() [d:\build\ue4_main\engine\source\runtime\core\private\misc\outputdevice.cpp:413]
UE4Editor_CoreUObject!StaticAllocateObject() [d:\build\ue4_main\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2203]
UE4Editor_CoreUObject!UClass::CreateDefaultObject() [d:\build\ue4_main\engine\source\runtime\coreuobject\private\uobject\class.cpp:2520]
UE4Editor_CoreUObject!UClass::GetDefaultObject() [d:\build\ue4_main\engine\source\runtime\coreuobject\public\uobject\class.h:2207]
UE4Editor_UnrealEd!FBlueprintEditorUtils::PropagateParentBlueprintDefaults() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:1953]
UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() [d:\build\ue4_main\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3500]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() [d:\build\ue4_main\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:100]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() [d:\build\ue4_main\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:186]
UE4Editor_UnrealEd!FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:2282]
UE4Editor_UnrealEd!FBlueprintEditorUtils::RenameGraph() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:2768]
UE4Editor_UnrealEd!FBlueprintEditorUtils::ValidateAllFunctionGraphs() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:5293]
UE4Editor_UnrealEd!FBlueprintEditorUtils::ValidateBlueprintChildVariables() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:5365]
UE4Editor_UnrealEd!PromoteInterfaceImplementationToOverride() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:175]
UE4Editor_UnrealEd!ConformInterfaceByName() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:6034]
UE4Editor_UnrealEd!FBlueprintEditorUtils::ConformImplementedInterfaces() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\blueprinteditorutils.cpp:6206]
UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() [d:\build\ue4_main\engine\source\editor\kismetcompiler\private\kismetcompiler.cpp:3336]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() [d:\build\ue4_main\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:100]
UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() [d:\build\ue4_main\engine\source\editor\kismetcompiler\private\kismetcompilermodule.cpp:202]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:756]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::CompileChildren() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:523]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:641]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\ue4_main\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:797]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\build\ue4_main\engine\source\editor\kismet\private\blueprinteditor.cpp:3207]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\ue4_main\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:317]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\ue4_main\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:423]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:87]
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:300]
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64>::operator()<>() [d:\build\ue4_main\engine\source\runtime\core\public\delegates\delegateinstanceinterface.h:161]
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64> >() [d:\build\ue4_main\engine\source\runtime\core\public\delegates\tuple.h:115]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() [d:\build\ue4_main\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:317]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\build\ue4_main\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:521]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\ue4_main\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:278]
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4611]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:215]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4600]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5054]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\ue4_main\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5034]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\ue4_main\engine\source\runtime\core\private\windows\windowsapplication.cpp:1512]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\ue4_main\engine\source\runtime\core\private\windows\windowsapplication.cpp:1852]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\ue4_main\engine\source\runtime\core\private\windows\windowsapplication.cpp:747]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\ue4_main\engine\source\runtime\core\private\windows\windowsapplication.cpp:669]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\ue4_main\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:905]
UE4Editor!FEngineLoop::Tick() [d:\build\ue4_main\engine\source\runtime\launch\private\launchengineloop.cpp:2771]
UE4Editor!GuardedMain() [d:\build\ue4_main\engine\source\runtime\launch\private\launch.cpp:156]
UE4Editor!GuardedMainWrapper() [d:\build\ue4_main\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\build\ue4_main\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Community References

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.13
Target Fix4.13
Fix Commit3063627
Main Commit3080751
Release Commit3073319
CreatedJul 11, 2016
ResolvedJul 25, 2016
UpdatedApr 27, 2018