Quick answer: Unreal asset references going stale after a C++ hot reload? The asset registry doesn't migrate UClass pointers - close the editor and rebuild, or use Live Coding instead of Hot Reload.

Hot reload finishes, blueprints that referenced the changed UClass now show 'None' for their parent. Open any blueprint, save-on-close, hello data loss.

Switch to Live Coding

Project Settings > General > Live Coding. Enable it; disable legacy Hot Reload. Live Coding patches running code without remapping UClass pointers, so the asset registry stays valid.

Don't save BPs after a hot reload

If you're stuck on Hot Reload, treat blueprints as read-only between the reload and the next editor restart. Saving captures the broken references and they persist.

Rebuild from CLI

UnrealBuildTool YourGame Win64 Development -Project=YourGame.uproject

Close the editor, rebuild, relaunch. Slow path; only path for some BP/native refactors.

“Hot Reload was never a fully supported workflow. Live Coding is what replaced it - use that.”

Add a pre-commit check that fails if any blueprint references None - catches a hot-reload-corrupted save before it lands in main.