Hello there, I have more info on this crash and would like your input on my proposed way to go about fixing it. The key discovery that I’ve made is that we have a scene view extension which loads sparse volume textures as part of its call to ISceneViewExtension::SetupViewFamily() which is ultimately the cause of the crash. SVT loading creates a slow task modal window, which sometimes causes the focus to be taken off the viewport which causes a hit proxy query, which in turn causes the debug canvas to be recreated in
FDebugCanvasDrawer::InitDebugCanvas(). The exact operations leading to this can be seen in the following call stack:
FDebugCanvasDrawer::InitDebugCanvas(FViewportClient *, UWorld *) DebugCanvas.cpp:230
FSceneViewport::EnqueueBeginRenderFrame(const bool) SceneViewport.cpp:1881
FViewport::GetRawHitProxyData(TIntRect<…>) UnrealClient.cpp:1919
FViewport::GetHitProxyMap(TIntRect<…>, TArray<…> &) UnrealClient.cpp:1995
FViewport::GetHitProxy(int, int) UnrealClient.cpp:2043
FEditorViewportClient::StopTracking() EditorViewportClient.cpp:3359
FEditorViewportClient::LostFocus(FViewport *) EditorViewportClient.cpp:1500
FLevelEditorViewportClient::LostFocus(FViewport *) LevelEditorViewport.cpp:2783
FSceneViewport::OnFocusLost(const FFocusEvent &) SceneViewport.cpp:1258
SViewport::OnFocusLost(const FFocusEvent &) SViewport.cpp:315
FSlateApplication::SetUserFocus(FSlateUser &, const FWidgetPath &, EFocusCause) SlateApplication.cpp:3022
[Inlined] FSlateApplication::SetAllUserFocusAllowingDescendantFocus::__l2::<lambda_1>::operator()(FSlateUser &) SlateApplication.cpp:3094
[Inlined] Invoke(<lambda_1> &, FSlateUser &) Invoke.h:47
UE::Core::Private::Function::TFunctionRefCaller<`FSlateApplication::SetAllUserFocusAllowingDescendantFocus'::`2'::<lambda_1>,void,FSlateUser &>::Call(void *,FSlateUser &) Function.h:316
[Inlined] UE::Core::Private::Function::TFunctionRefBase::operator()(FSlateUser &) Function.h:471
[Inlined] FSlateApplication::ForEachUser(TFunctionRef<…>, bool) SlateApplication.cpp:4452
FSlateApplication::SetAllUserFocusAllowingDescendantFocus(const FWidgetPath &, EFocusCause) SlateApplication.cpp:3091
SWindow::OnIsActiveChanged(const FWindowActivateEvent &) SWindow.cpp:1721
FSlateApplication::ProcessWindowActivatedEvent(const FWindowActivateEvent &) SlateApplication.cpp:6903
FSlateApplication::OnWindowActivationChanged(const TSharedRef<…> &, EWindowActivation) SlateApplication.cpp:6869
FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage &) WindowsApplication.cpp:3287
FWindowsApplication::DeferMessage(TSharedPtr<…> &, HWND__ *, unsigned int, unsigned long long, long long, int, int, unsigned int) WindowsApplication.cpp:3606
FWindowsApplication::ProcessMessage(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:2764
[Inlined] WindowsApplication_WndProc(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:1752
FWindowsApplication::AppWndProc(HWND__ *, unsigned int, unsigned long long, long long) WindowsApplication.cpp:1757
<unknown> 0x00007ffee1e88eb8
<unknown> 0x00007ffee1e8896c
<unknown> 0x00007ffee1e93e1d
<unknown> 0x00007ffee2114c94
<unknown> 0x00007ffedf7f1f44
FWindowsWindow::Show() WindowsWindow.cpp:743
SWindow::ShowWindow() SWindow.cpp:1450
FFeedbackContextEditor::StartSlowTask(const FText &, bool) FeedbackContextEditor.cpp:531
FSlowTask::MakeDialog(bool, bool) SlowTask.cpp:237
UStreamableSparseVolumeTexture::RecacheFrames() SparseVolumeTexture.cpp:1724
UObject::ConditionalPostLoad() Obj.cpp:1356
FAsyncPackage2::ExecuteDeferredPostLoadLinkerLoadPackageExports(FAsyncLoadingThreadState2 &) AsyncLoading2.cpp:7170
FAsyncPackage2::Event_DeferredPostLoadExportBundle(FAsyncLoadingThreadState2 &, FAsyncPackage2 *, int) AsyncLoading2.cpp:8944
FEventLoadNode2::Execute(FAsyncLoadingThreadState2 &) AsyncLoading2.cpp:5713
FAsyncLoadEventQueue2::ExecuteSyncLoadEvents(FAsyncLoadingThreadState2 &) AsyncLoading2.cpp:5919
FAsyncLoadingThread2::ProcessLoadedPackagesFromGameThread(FAsyncLoadingThreadState2 &, bool &, TArrayView<…>) AsyncLoading2.cpp:9294
FAsyncLoadingThread2::TickAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 &, bool, bool, double, TArrayView<…>, bool &) AsyncLoading2.cpp:9558
FAsyncLoadingThread2::FlushLoading(TArrayView<…>) AsyncLoading2.cpp:11243
FlushAsyncLoading(TArrayView<…>) AsyncPackageLoader.cpp:362
FlushAsyncLoading(int) AsyncPackageLoader.cpp:331
LoadPackageInternal(UPackage *, const FPackagePath &, unsigned int, FLinkerLoad *, FArchive *, const FLinkerInstancingContext *, const FPackagePath *) UObjectGlobals.cpp:1771
LoadPackage(UPackage *, const FPackagePath &, unsigned int, FArchive *, const FLinkerInstancingContext *, const FPackagePath *) UObjectGlobals.cpp:2135
LoadPackage(UPackage *, const wchar_t *, unsigned int, FArchive *, const FLinkerInstancingContext *) UObjectGlobals.cpp:2111
ResolveName2(UObject *&, TStringBuilderBase<…> &, bool, bool, unsigned int, const FLinkerInstancingContext *) UObjectGlobals.cpp:1277
StaticLoadObjectInternal(UClass *, UObject *, const wchar_t *, const wchar_t *, unsigned int, UPackageMap *, bool, const FLinkerInstancingContext *) UObjectGlobals.cpp:1397
StaticLoadObject(UClass *, UObject *, const wchar_t *, const wchar_t *, unsigned int, UPackageMap *, bool, const FLinkerInstancingContext *) UObjectGlobals.cpp:1466
FSoftObjectPath::TryLoad(FUObjectSerializeContext *) SoftObjectPath.cpp:806
FSoftObjectPtr::LoadSynchronous() SoftObjectPtr.h:87
[Inlined] TSoftObjectPtr::LoadSynchronous() SoftObjectPtr.h:516
Redacted frame
Redacted frame
RedactedSceneViewExtension::SetupViewFamily(FSceneViewFamily &) RedactedSceneViewExtension.cpp:220
FEditorViewportClient::Draw(FViewport *, FCanvas *) EditorViewportClient.cpp:4426
FViewport::Draw(bool) UnrealClient.cpp:1819
UEditorEngine::UpdateSingleViewportClient(FEditorViewportClient *, const bool, bool, bool *) EditorEngine.cpp:2662
UEditorEngine::Tick(float, bool) EditorEngine.cpp:2326
UUnrealEdEngine::Tick(float, bool) UnrealEdEngine.cpp:530
FEngineLoop::Tick() LaunchEngineLoop.cpp:5644
[Inlined] EngineTick() Launch.cpp:60
GuardedMain(const wchar_t *) Launch.cpp:189
LaunchWindowsStartup(HINSTANCE__ *, HINSTANCE__ *, char *, int, const wchar_t *) LaunchWindows.cpp:271
WinMain(HINSTANCE__ *, HINSTANCE__ *, char *, int) LaunchWindows.cpp:339
[Inlined] invoke_main() 0x00007ff667ba88fa
__scrt_common_main_seh() 0x00007ff667ba88d9
<unknown> 0x00007ffee11e259d
<unknown> 0x00007ffee20caf78