Editor crashes when opening certain levels (after upgrade from 4.24 to 4.26)

After upgrading my project from 4.24 to 4.26, Unreal keeps crashing when I load certain levels (or when I modify other levels that have references to them). I can’t even properly delete them, since the editor crashes as soon as I right-click the asset.

  • I tried uninstalling and reinstalling UE4.26.
  • I tried deleting the “Intermediate” and “Saved” folders and converting the project again.
  • I tried converting to 4.25 first (works fine) and then from 4.25 to 4.26 (still crashes).
  • I tried opening the project on a different PC.
  • There doesn’t appear to be anything -in- these levels that causes the crash. I can recreate the exact same levels by copy-pasting the content from their corresponding 4.24 version into an empty level in 4.26 and save/load them without any issues. The levels only consist of static meshes and default point/spot lights.

The only option I can see right now is to recreate all affected levels by copy-pasting their content from 4.24, hard delete their broken 4.26 versions in Windows explorer, then try to fix any levels that used them as sublevels. That’s not exactly clean though, not to mention it probably doesn’t solve the underlying issue.

So if anyone can give me any pointers how to fix this or debug the issue further, it would be much appreciated.

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 674] Array index out of bounds: 1 from an array of size 0

UE4Editor_Core!AssertFailedImplV() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:102]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:458]
UE4Editor_Engine!DispatchCheckVerify<void,<lambda_2eacebcc7fe03d120dd8d8585cbd61ea> >() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:165]
UE4Editor_Engine!FExpressionInput::Connect() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Materials\MaterialShared.cpp:263]
UE4Editor_Engine!UMaterial::Serialize() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Materials\Material.cpp:3336]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp:4069]
UE4Editor_CoreUObject!FAsyncPackage::CreateExports() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:6234]
UE4Editor_CoreUObject!FAsyncPackage::TickAsyncPackage() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:5538]
UE4Editor_CoreUObject!FAsyncLoadingThread::ProcessAsyncLoading() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:4214]
UE4Editor_CoreUObject!FAsyncLoadingThread::TickAsyncThread() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:4855]
UE4Editor_CoreUObject!FAsyncLoadingThread::TickAsyncLoading() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:4555]
UE4Editor_CoreUObject!FAsyncLoadingThread::FlushLoading() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp:7009]
UE4Editor_CoreUObject!FlushAsyncLoading() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncPackageLoader.cpp:601]
UE4Editor_Engine!ULevelStreaming::RequestLevel() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\LevelStreaming.cpp:1080]
UE4Editor_Engine!<lambda_239201e08487a01ad589b16e86f698c0>::operator()() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\LevelStreaming.cpp:552]
UE4Editor_Engine!ULevelStreaming::UpdateStreamingState() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\LevelStreaming.cpp:697]
UE4Editor_Engine!UWorld::UpdateLevelStreaming() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\World.cpp:3427]
UE4Editor_Engine!UWorld::FlushLevelStreaming() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\World.cpp:3652]
UE4Editor_UnrealEd!UEditorEngine::Map_Load() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\EditorServer.cpp:2769]
UE4Editor_UnrealEd!UEditorEngine::HandleMapCommand() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\EditorServer.cpp:6199]
UE4Editor_UnrealEd!UEditorEngine::Exec() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\EditorServer.cpp:5700]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdSrv.cpp:697]
UE4Editor_UnrealEd!FEditorFileUtils::LoadMap() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\FileHelpers.cpp:2554]
UE4Editor_UnrealEd!FEditorFileUtils::LoadDefaultMapAtStartup() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\FileHelpers.cpp:4043]
UE4Editor_UnrealEd!FUnrealEdMisc::OnInit() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdMisc.cpp:359]
UE4Editor_UnrealEd!EditorInit() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdGlobals.cpp:115]
UE4Editor!GuardedMain() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:149]
UE4Editor!GuardedMainWrapper() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]

As far as i can tell based on error dump during loading of a map some item’s material as an array its attempting to read first element but array is empty, i am guessing some change between 4.25 and 4.26 as cause how you populate a dynamic array in a material to silently fail return an empty array causing your issue, to little info to figure out which 1

Thanks for the reply. There are only static meshes and lights in those levels, no blueprints or construction scripts of any kind that could be causing these kind of issues. I’ll take a closer look at the materials themselves, but I don’t think there’s anything out of place with them either.