Editor crashes sometimes on hot reload

A couple of months ago, the UE4 editor started crashing sometimes after compilation and hot reload. It doesn’t happen always and I don’t know what affects whether it does or doesn’t, but it seems that saving doing Save All prior to compiling lowers the chance of it crashing. Overall it happens after about every second or third compilation.

I’ve been ignoring it since it started happening, but I’ve been doing a lot of coding lately and it got really annoying, so I finally decided to solve this, but I couldn’t make sense of the error log. It doesn’t seem to be caused by any custom code or content, but it’s exclusive to a single project. It has been happening since 4.16 and updating didn’t solve the problem. I’ll try updating to 4.18 soon but I highly doubt that it will have any effect either.

Here’s the error log:

Assertion failed: IsValid() [File:D:\Build\++UE4+Release-4.17+Compile\Sync\Engine\Source\Runtime\Core\Public\Templates/SharedPointer.h] [Line: 824]

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_Engine!UHierarchicalInstancedStaticMeshComponent::Serialize() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\engine\private\hierarchicalinstancedstaticmesh.cpp:1814]
UE4Editor_CoreUObject!FArchiveHasReferences::FArchiveHasReferences() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\serialization\archivehasreferences.cpp:46]
UE4Editor_CoreUObject!FArchiveHasReferences::GetAllReferencers() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\serialization\archivehasreferences.cpp:87]
UE4Editor_CoreUObject!FArchiveHasReferences::GetAllReferencers() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\serialization\archivehasreferences.cpp:68]
UE4Editor_UnrealEd!FReplaceReferenceHelper::FindAndReplaceReferences() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:89]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:2025]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::BatchReplaceInstancesOfClass() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1474]
UE4Editor_Kismet!FBlueprintCompilationManagerImpl::FlushReinstancingQueueImpl() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:963]
UE4Editor_Kismet!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\kismet\private\blueprintcompilationmanager.cpp:196]
UE4Editor_UnrealEd!FKismetEditorUtilities::CompileBlueprint() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismet2.cpp:750]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::CompileChildren() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:599]
UE4Editor_UnrealEd!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:730]
UE4Editor_HotReload!FHotReloadModule::ReinstanceClass() [d:\build\++ue4+release-4.17+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1278]
UE4Editor_HotReload!FHotReloadModule::ReinstanceClasses() [d:\build\++ue4+release-4.17+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1261]
UE4Editor_HotReload!TBaseRawMethodDelegateInstance<0,FHotReloadModule,void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:648]
UE4Editor_CoreUObject!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor_CoreUObject!UClassReplaceHotReloadClasses() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:747]
UE4Editor_CoreUObject!ProcessNewlyLoadedUObjects() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:900]
UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:1027]
UE4Editor_Core!TBaseMulticastDelegate<void>::Broadcast() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:937]
UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:487]
UE4Editor_Core!FModuleManager::LoadModule() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\private\modules\modulemanager.cpp:338]
UE4Editor_HotReload!FHotReloadModule::DoHotReloadInternal() [d:\build\++ue4+release-4.17+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:864]
UE4Editor_HotReload!UE4Function_Private::TFunctionRefCaller<<lambda_65e31c59b758d14e2b26086c892be1a2>,void __cdecl(TMap<FString,FString,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FString,FString,0> > const & __ptr64,bool,enum ECompilationResult::Type)>() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\core\public\templates\function.h:245]
UE4Editor_HotReload!FHotReloadModule::CheckForFinishedModuleDLLCompile() [d:\build\++ue4+release-4.17+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:1948]
UE4Editor_HotReload!FHotReloadModule::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\developer\hotreload\private\hotreload.cpp:602]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1263]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:402]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3215]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.17+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
kernel32
ntdll

Hello DELTA_12,
Im Big7777777 and have this problem too. I think your CPU is too slow. Thats why the program always crashes.
You need a more faster PC or Laptop.
>Big7777777<

I have an overclocked Intel i7-7700K CPU and I’m not on a laptop. Either way, programs don’t crash because your CPU is slow.

I have the same error since I made a custom foliage component class. Started in 4.19 now same or worse in 4.21. While hot reloading I roll the dice of fate and most of the time I roll a crash.