Quick answer: Start the editor with -noloadstartupmap -log to see the crash callstack, then use the Reference Viewer on the broken .umap to find the missing asset. The fix is usually either reverting the map from source control, re-enabling a disabled plugin, or fixing a broken Blueprint compile error.

You double-click your main level in the Content Browser, Unreal Editor freezes for a few seconds, and then the Crash Reporter window appears. Every time. You can open the project fine, you can browse other levels, but this one level crashes on load. Your heart rate spikes because the map contains hours of level design work. Here is the process to recover it, and then to prevent it from happening again.

Step 1: Capture the Real Crash

The Unreal Crash Reporter often shows a generic message. The actual useful information is in the .log file. Start the editor from the command line with logging forced on:

# Windows
UnrealEditor.exe "C:\Projects\MyGame\MyGame.uproject" -noloadstartupmap -log

# macOS / Linux
./UnrealEditor.sh /Projects/MyGame/MyGame.uproject -noloadstartupmap -log

-noloadstartupmap prevents the editor from auto-loading your default level, which is essential if the crashing level is set as the startup map. -log opens a live log window and writes everything to Saved/Logs/MyGame.log.

Now try to open the crashing level. When it crashes, check the log for lines like:

LogLinker: Warning: Missing Class /Script/MyPlugin.MyCustomComponent for object
LogLoad: Error: Failed to load /Game/Maps/MainLevel: Can't find file for package
LogBlueprint: Error: [Compiler] Unknown node type 'K2Node_CallFunction_9999'
LogAssetRegistry: Warning: Redirector /Game/Characters/Hero_REDIRECTOR is corrupt

The last line of warnings or errors before the crash is almost always your actual cause.

Step 2: Identify the Specific Cause

Missing plugin or class. If the log mentions /Script/SomePlugin.SomeClass, you have a level that references a plugin that has been disabled, uninstalled, or not compiled for your current build. Re-enable the plugin in Edit → Plugins and restart the editor.

Missing asset reference. If the log says Failed to load /Game/Path/To/Asset, a file that the level references has been deleted or moved. Check your source control log for recent deletions.

Blueprint compile error. If the log mentions K2Node, BlueprintCompiler, or Unknown node type, a Blueprint placed in the level has a compile error from a C++ parent class change. Open the Blueprint in isolation first, fix the compile errors, then reopen the level.

Corrupt redirector. Redirectors are created when you move or rename assets. If one becomes corrupt, loading anything that references it crashes. Run Fix Up Redirectors from the Content Browser right-click menu on the Content folder.

Step 3: Recover the Level

Option A: Revert from source control.

If you are using Git, Perforce, or any source control:

# Git: revert just the map file to the last good commit
git log --oneline Content/Maps/MainLevel.umap
git checkout <commit-hash> -- Content/Maps/MainLevel.umap

# Perforce
p4 sync Content/Maps/MainLevel.umap#<revision>

This is the fastest, safest recovery. You lose changes since the last commit, but you keep the rest of your work.

Option B: Recover from auto-save.

Unreal auto-saves open levels every 10 minutes by default into Saved/Backup/. Navigate to that folder, find the most recent MainLevel_Auto.umap (there may be a dozen), copy it to your Content folder under a new name, and try to load it.

Option C: Open the umap as text and strip the bad reference.

As a last resort, run the Asset Registry in commandlet mode to list everything the umap references, then manually strip a specific reference:

UnrealEditor.exe MyGame.uproject -run=DumpExportedReferences "/Game/Maps/MainLevel"

This dumps every hard reference in the map. Find the one that matches your error message, open the .umap in a text editor (they are partially text-serialized), and replace the offending reference with a null GUID. This is dangerous and should only be done with a backup.

Step 4: Prevent It Next Time

Level crashes are almost always avoidable with a few workflow habits:

When Nothing Works

If the crash happens inside engine code and you cannot find a callstack that identifies the problem, the last resort is to load the level with an instrumented debug build. Clone a copy of your project, switch to a Debug Editor configuration, and attach Visual Studio or Rider to the crashing process. The debugger will break at the exact line where the crash happens, usually in an UObject::Serialize or FLinker::Load call, and the callstack will show which object was being deserialized when the crash occurred.

"Every Unreal team eventually has the crashing level story. The one-hour version is 'reverted from Git'. The eight-hour version is 'rebuilt the level from auto-save and reconstructed the last twenty minutes by memory'. Commit often."

Related Issues

For runtime-only crashes (editor runs fine but packaged builds crash), see Unreal packaged build crash on startup. For level streaming issues that can look like full-level crashes, check Unreal level streaming hitches.

The -log flag is your best friend. Always start troubleshooting with -log.