Having a child blueprint that contains a custom event with the same name as a custom even that it is calling from its parent causes the editor to crash when attempting to compile the original parent blueprint.
Found in 4.11 Preview 5. Reproduced in Main CL 2858567.
Could not reproduce in 4.10.2. This is a regression.
Source Context
 116       // // before this class
  117       // if (Component->GetClass()->HasAnyClassFlags(CLASS_CompiledFromBlueprint))
  118       // {
  119       // DependenciesOut.Add(Component);
  120       // }
  121       // }
  122       }
  123       
  124       #if WITH_EDITOR
  125       
  126       UClass* UBlueprintGeneratedClass::GetAuthoritativeClass()
  127       {
  128       if (nullptr == ClassGeneratedBy) // to track UE-11597 and UE-11595
  129       {
  130 ***** UE_LOG(LogBlueprint, Fatal, TEXT("UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class '%s'"), *GetPathName());
  131       }
  132       
  133       UBlueprint* GeneratingBP = CastChecked<UBlueprint>(ClassGeneratedBy);
  134       
  135       check(GeneratingBP);
  136       
  137       return (GeneratingBP->GeneratedClass != NULL) ? GeneratingBP->GeneratedClass : this;
  138       }
  139       
  140       struct FConditionalRecompileClassHepler
  141       {
  142       enum ENeededAction
  143       {
  144       None,
  145       StaticLink,
1. Open the editor
2. Create a new actor blueprint (BP_Actor)
3. Add a custom event to BP_Actor called TestEvent
4. Compile BP_Actor
5. Create a Child Blueprint Derived from BP_Actor
6. In the child bp, call Test Event from BP_Actor
7. Create a new custom event in the child blueprint called TestEvent
8. Compile BP_Actor
9. Compile BP_Actor_Child
10. Compile BP_Actor
Result: Editor crashes
Expected: No crash would occur
Fatal error: [Link Removed] [Line: 131] UBlueprintGeneratedClass::GetAuthoritativeClass: ClassGeneratedBy is null. class '/Engine/Transient.TRASHCLASS_BP_Actor_40'
UE4Editor_Engine!UBlueprintGeneratedClass::GetAuthoritativeClass() blueprintgeneratedclass.cpp:131 UE4Editor_UnrealEd!FBlueprintEditorUtils::RefreshExternalBlueprintDependencyNodes() blueprinteditorutils.cpp:572 UE4Editor_KismetCompiler!FKismetCompilerContext::Compile() kismetcompiler.cpp:3520 UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprintInner() kismetcompilermodule.cpp:100 UE4Editor_KismetCompiler!FKismet2CompilerModule::CompileBlueprint() kismetcompilermodule.cpp:192 UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:755 UE4Editor_Kismet!FBlueprintEditor::Compile() blueprinteditor.cpp:3147 UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl() delegateinstancesimpl_variadics.inl:427 UE4Editor_Slate!FUICommandList::ExecuteAction() uicommandlist.cpp:87 UE4Editor_Slate!SToolBarButtonBlock::OnClicked() stoolbarbuttonblock.cpp:300 UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply() delegateinstanceinterface_variadics.h:161 UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter_ExplicitReturnType<FReply,TMemberFunctionCaller<SToolBarButtonBlock,FReply() tuple.h:128 UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl() delegateinstancesimpl_variadics.inl:321 UE4Editor_Slate!TBaseDelegate<FReply>::Execute() delegatesignatureimpl_variadics.inl:521 UE4Editor_Slate!SButton::OnMouseButtonUp() sbutton.cpp:273 UE4Editor_Slate!<lambda_9ed539f2a96fd1ccd6d2214174cc7705>::operator() slateapplication.cpp:4508 UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_9ed539f2a96fd1ccd6d2214174cc7705> >() slateapplication.cpp:214 UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:4498 UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:4915 UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:4891 UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1407 UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:1712 UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:696 UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:618 user32!<Unknown> user32!<Unknown> UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:884 UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2604 UE4Editor!GuardedMain() launch.cpp:142 UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 UE4Editor!WinMain() launchwindows.cpp:200 UE4Editor!__scrt_common_main_seh() exe_common.inl:264 kernel32!<Unknown> ntdll!<Unknown>
Head over to the existing Questions & Answers thread and let us know what's up.
| 0 | 
| Component | UE - Gameplay - Blueprint | 
|---|---|
| Affects Versions | 4.11, 4.12 | 
| Target Fix | 4.12.1 | 
| Fix Commit | 2999763 | 
|---|---|
| Release Commit | 2999778 | 
| Created | Feb 10, 2016 | 
|---|---|
| Resolved | Jun 3, 2016 | 
| Updated | Apr 27, 2018 |