Description

Appears to be an issue with load order and the timing of when we populate the 'ShowSpriteCommands' and 'SpriteIDToIndexMap' containers, which we assert on if they're not the same size.

The original issue was reported back in 2016 but the general case repro is not explicitly stated.

Another licensee reported more recently that this crash can be reproduced at startup by using version 2017.2.1 of the WWise plugin integrated with UE4 4.18.3.

Steps to Reproduce
  1. Launch editor with sample SpriteCompTest project.
  2. In the level viewport, choose "Show->Sprites"
  3. The editor will crash.

(Note: Once the issue is fixed, the editor should no longer crash and the dummy category titled "If you see this without a crash, it worked" will be present in the menu.)

Callstack

> UE4Editor-LevelEditor.dll!SLevelViewport::BindShowCommands(FUICommandList & CommandList) Line 1405 C++
UE4Editor-LevelEditor.dll!SLevelViewport::BindCommands() Line 1116 C++
UE4Editor-UnrealEd.dll!SEditorViewport::Construct(const SEditorViewport::FArguments & InArgs) Line 82 C++
UE4Editor-LevelEditor.dll!SLevelViewport::Construct(const SLevelViewport::FArguments & InArgs) Line 154 C++
UE4Editor-LevelEditor.dll!TDecl<SLevelViewport,RequiredArgs::T0RequiredArgs>::operator<<=(const SLevelViewport::FArguments & InArgs) Line 1080 C++
UE4Editor-LevelEditor.dll!FLevelViewportLayoutEntity::FLevelViewportLayoutEntity(const FViewportConstructionArgs & ConstructionArgs) Line 8 C++
UE4Editor-LevelEditor.dll!FViewportTypeDefinition::FromType::__l2::<lambda>(const FViewportConstructionArgs & Args) Line 17 C++
UE4Editor-LevelEditor.dll!UE4Function_Private::TFunctionRefCaller<TSharedRef<IViewportLayoutEntity,0> <lambda>(const FViewportConstructionArgs &),TSharedRef<IViewportLayoutEntity,0> __cdecl(FViewportConstructionArgs const & __ptr64)>::Call(void * Obj, const FViewportConstructionArgs & <Params_0>) Line 295 C++
UE4Editor-LevelEditor.dll!UE4Function_Private::TFunctionRefBase<TFunction<TSharedRef<IViewportLayoutEntity,0> __cdecl(FViewportConstructionArgs const & __ptr64)>,TSharedRef<IViewportLayoutEntity,0> __cdecl(FViewportConstructionArgs const & __ptr64)>::operator()(const FViewportConstructionArgs & <Params_0>) Line 342 C++
UE4Editor-LevelEditor.dll!FLevelEditorModule::FactoryViewport(FName InTypeName, const FViewportConstructionArgs & ConstructionArgs) Line 554 C++
UE4Editor-LevelEditor.dll!FLevelViewportLayout2x2::MakeViewportLayout(const FString & LayoutString) Line 65 C++
UE4Editor-LevelEditor.dll!FLevelViewportLayout::BuildViewportLayout(TSharedPtr<SDockTab,0> InParentDockTab, TSharedPtr<FLevelViewportTabContent,0> InParentTab, const FString & LayoutString, TWeakPtr<ILevelEditor,0> InParentLevelEditor) Line 185 C++
UE4Editor-LevelEditor.dll!FLevelViewportTabContent::UpdateViewportTabWidget() Line 156 C++
UE4Editor-LevelEditor.dll!FLevelViewportTabContent::Initialize(TSharedPtr<ILevelEditor,0> InParentLevelEditor, TSharedPtr<SDockTab,0> InParentTab, const FString & InLayoutString) Line 59 C++
UE4Editor-LevelEditor.dll!SLevelEditor::BuildViewportTab(const FText & Label, const FString LayoutId, const FString & InitializationPayload) Line 853 C++
UE4Editor-LevelEditor.dll!SLevelEditor::SpawnLevelEditorTab(const FSpawnTabArgs & Args, FName TabIdentifier, FString InitializationPayload) Line 574 C++
UE4Editor-LevelEditor.dll!TMemberFunctionCaller<SLevelEditor,TSharedRef<SDockTab,0> (__cdecl SLevelEditor::*)(FSpawnTabArgs const & __ptr64,FName,FString) __ptr64>::operator()<FSpawnTabArgs const & __ptr64,FName const & __ptr64,FString const & __ptr64>(const FSpawnTabArgs & <Args_0>, const FName & <Args_1>, const FString & <Args_2>) Line 161 C++
UE4Editor-LevelEditor.dll!TTupleImpl<TIntegerSequence<unsigned int,0,1>,FName,FString>::ApplyAfter_ExplicitReturnType<TSharedRef<SDockTab,0>,TMemberFunctionCaller<SLevelEditor,TSharedRef<SDockTab,0> (_cdecl SLevelEditor::)(FSpawnTabArgs const & __ptr64,FName,FString) __ptr64>,FSpawnTabArgs const & __ptr64>(TMemberFunctionCaller<SLevelEditor,TSharedRef<SDockTab,0> (_cdecl SLevelEditor::)(FSpawnTabArgs const &,FName,FString)> && Func, const FSpawnTabArgs & <Args_0>) Line 93 C++
UE4Editor-LevelEditor.dll!TBaseSPMethodDelegateInstance<0,SLevelEditor,0,TSharedRef<SDockTab,0> __cdecl(FSpawnTabArgs const & __ptr64),FName,FString>::Execute(const FSpawnTabArgs & <Params_0>) Line 321 C++
UE4Editor-Slate.dll!TBaseDelegate<TSharedRef<SDockTab,0>,FSpawnTabArgs const & __ptr64>::Execute(const FSpawnTabArgs & <Params_0>) Line 521 C++
UE4Editor-Slate.dll!FTabManager::SpawnTab(const FTabId & TabId, const TSharedPtr<SWindow,0> & ParentWindow) Line 1292 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea_Helper(const TSharedRef<FTabManager::FLayoutNode,0> & LayoutNode, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 1151 C++
UE4Editor-Slate.dll!FTabManager::RestoreSplitterContent(const TSharedRef<FTabManager::FSplitter,0> & SplitterNode, const TSharedRef<SDockingSplitter,0> & SplitterWidget, const TSharedPtr<SWindow,0> & ParentWindow) Line 1266 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea_Helper(const TSharedRef<FTabManager::FLayoutNode,0> & LayoutNode, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 1244 C++
UE4Editor-Slate.dll!FTabManager::RestoreSplitterContent(const TSharedRef<FTabManager::FSplitter,0> & SplitterNode, const TSharedRef<SDockingSplitter,0> & SplitterWidget, const TSharedPtr<SWindow,0> & ParentWindow) Line 1266 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea_Helper(const TSharedRef<FTabManager::FLayoutNode,0> & LayoutNode, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 1244 C++
UE4Editor-Slate.dll!FTabManager::RestoreSplitterContent(const TSharedRef<FTabManager::FSplitter,0> & SplitterNode, const TSharedRef<SDockingSplitter,0> & SplitterWidget, const TSharedPtr<SWindow,0> & ParentWindow) Line 1266 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea_Helper(const TSharedRef<FTabManager::FLayoutNode,0> & LayoutNode, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 1235 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea(const TSharedRef<FTabManager::FArea,0> & AreaToRestore, const TSharedPtr<SWindow,0> & InParentWindow, const bool bEmbedTitleAreaContent) Line 1127 C++
UE4Editor-Slate.dll!FTabManager::RestoreFrom(const TSharedRef<FTabManager::FLayout,0> & Layout, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 700 C++
UE4Editor-LevelEditor.dll!SLevelEditor::RestoreContentArea(const TSharedRef<SDockTab,0> & OwnerTab, const TSharedRef<SWindow,0> & OwnerWindow) Line 1200 C++
UE4Editor-LevelEditor.dll!SLevelEditor::Initialize(const TSharedRef<SDockTab,0> & OwnerTab, const TSharedRef<SWindow,0> & OwnerWindow) Line 168 C++
UE4Editor-LevelEditor.dll!FLevelEditorModule::SpawnLevelEditor(const FSpawnTabArgs & InArgs) Line 157 C++
UE4Editor-LevelEditor.dll!TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (__cdecl FLevelEditorModule::*)(FSpawnTabArgs const & __ptr64) __ptr64>::operator()<FSpawnTabArgs const & __ptr64>(const FSpawnTabArgs & <Args_0>) Line 161 C++
UE4Editor-LevelEditor.dll!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter_ExplicitReturnType<TSharedRef<SDockTab,0>,TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (_cdecl FLevelEditorModule::)(FSpawnTabArgs const & __ptr64) __ptr64>,FSpawnTabArgs const & __ptr64>(TMemberFunctionCaller<FLevelEditorModule,TSharedRef<SDockTab,0> (_cdecl FLevelEditorModule::)(FSpawnTabArgs const &)> && Func, const FSpawnTabArgs & <Args_0>) Line 128 C++
UE4Editor-LevelEditor.dll!TBaseRawMethodDelegateInstance<0,FLevelEditorModule,TSharedRef<SDockTab,0> __cdecl(FSpawnTabArgs const & __ptr64)>::Execute(const FSpawnTabArgs & <Params_0>) Line 550 C++
UE4Editor-Slate.dll!TBaseDelegate<TSharedRef<SDockTab,0>,FSpawnTabArgs const & __ptr64>::Execute(const FSpawnTabArgs & <Params_0>) Line 521 C++
UE4Editor-Slate.dll!FTabManager::SpawnTab(const FTabId & TabId, const TSharedPtr<SWindow,0> & ParentWindow) Line 1292 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea_Helper(const TSharedRef<FTabManager::FLayoutNode,0> & LayoutNode, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 1151 C++
UE4Editor-Slate.dll!FTabManager::RestoreSplitterContent(const TSharedRef<FTabManager::FSplitter,0> & SplitterNode, const TSharedRef<SDockingSplitter,0> & SplitterWidget, const TSharedPtr<SWindow,0> & ParentWindow) Line 1266 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea_Helper(const TSharedRef<FTabManager::FLayoutNode,0> & LayoutNode, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 1235 C++
UE4Editor-Slate.dll!FTabManager::RestoreArea(const TSharedRef<FTabManager::FArea,0> & AreaToRestore, const TSharedPtr<SWindow,0> & InParentWindow, const bool bEmbedTitleAreaContent) Line 1127 C++
UE4Editor-Slate.dll!FTabManager::RestoreFrom(const TSharedRef<FTabManager::FLayout,0> & Layout, const TSharedPtr<SWindow,0> & ParentWindow, const bool bEmbedTitleAreaContent) Line 700 C++
UE4Editor-MainFrame.dll!FMainFrameModule::CreateDefaultMainFrame(const bool bStartImmersive, const bool bStartPIE) Line 183 C++
UE4Editor-UnrealEd.dll!EditorInit(IEngineLoop & EngineLoop) Line 116 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 137 C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 189 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-54964 in the post.

1
Login to Vote

Fixed
ComponentTools
Affects Versions4.18.3
Target Fix5.0
Fix Commit14942521
Release Commit14942521
CreatedFeb 7, 2018
ResolvedDec 9, 2020
UpdatedJun 28, 2022
Pull Requests
7518 - JohanAnstey