UE 4.11 and 4.12 never crashed on me with this exception so I suspect it was introduced with 4.13.
This crash has been happening when I recompile my Actor after making a change to one of the interfaces implemented by the Actor. This crash happens often, but not every time I recompile changes made to an Actor. However, when it does crash the editor I can reproduce it over and over until I short circuit the process (more on this later).
NOTE: I have my Compile setting setup so any time I click Compile it is supposed to save the blueprint. It appears the save process is after a successful Compilation, but that doesn’t really matter. So keep that in mind when you see the steps where I compile.
The procedure I took this last time when the crash happened is as follows:
- Add a function to my interface ICivilizationCertificateBearer, manually trigger Compile + Save.
- Update my PlayerController which implements ICivilizationCertificateBearer and add the implementation for the interface function. Manually trigger Compile + Save.
- Open up another Actor that implements ICivilizationCertificateBearer and add the implementation for the interface function. Manually trigger Compile + Save.
- UE4 editor crashes.
- Send and Restart the editor through the crash reporter window.
- Open up the interface ICivilizationCertificateBearer, verified it still has the new function which means it Compiled and Saved correctly.
- Open up PlayerController and verify that the new interface function has its implementation which means it Compiled and Saved correctly.
- Open up the Actor from step #3 that crashed the editor last time. Open the new interface function and see that the implementation is empty (obviously because editor crashed before saving).
- Re-add the new function’s implementation to the Actor from step #3. Manually trigger Compile + Save.
- UE4 editor crashes.
- (I can repeat the above process and at this point – after the first crash – I can reproduce it every time)
- Send and Restart UE4 through the crasher reporter.
- Reopen the offending Actor from step #3 and add it’s new interface function implementation. DON’T compile, only SAVE.
- Close the editor.
- Reopen the project.
- Open the Actor from step #3 and verify the new interface function implementation has been saved.
- See that the Compile button has a green check mark. Click Compile and it crashes the editor.
- Close Actor from step #3 and reopen PlayerController.
- Click Compile in PlayerController and there’s no crash. Reopen Actor from step #3, click Compile and UE4 editor crashes again.
The crash report is below.
MachineId:2AF6BA6E4372C977D16003892DAD3E08
EpicAccountId:a5296e62325842c392ef652a52633390
Assertion failed: NewActor != nullptr [File:D:\Build\++UE4+Release-4.13+Compile\Sync\Engine\Source\Editor\UnrealEd\Private\Kismet2\KismetReinstanceUtilities.cpp] [Line: 1481]
UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:421]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1482]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReplaceInstancesOfClass() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1314]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceInner() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:608]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:770]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:795]
UE4Editor_Kismet!FBlueprintEditor::Compile() [d:\build\++ue4+release-4.13+compile\sync\engine\source\editor\kismet\private\blueprinteditor.cpp:3213]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,TTypeWrapper<void> __cdecl(void)>::Execute() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:317]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,FBlueprintEditor,0,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:423]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:92]
UE4Editor_Slate!SToolBarButtonBlock::OnClicked() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\multibox\stoolbarbuttonblock.cpp:300]
UE4Editor_Slate!TMemberFunctionCaller<SToolBarButtonBlock,FReply (__cdecl SToolBarButtonBlock::*)(void) __ptr64>::operator()<>() [d:\build\++ue4+release-4.13+compile\sync\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+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\tuple.h:115]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SToolBarButtonBlock,0,FReply __cdecl(void)>::Execute() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:317]
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:521]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:278]
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator()() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4901]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:215]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:4890]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5348]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5328]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1584]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1930]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:747]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:669]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:905]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2788]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\launch.cpp:156]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.13+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\build\++ue4+release-4.13+compile\sync\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