How-To: Handle Save/Load Errors

Goal: give the player resilient feedback when a save or load partially fails, and know when an asynchronous operation has actually finished.

Prerequisites
You have a save menu or HUD that can show status (see How-To: Build a Save/Load Menu).

1. Saves and loads are event-driven

Do not assume data is present on the line after RequestLoadFromSlot. A load finishes when OnLoadComplete(bool bSuccess) fires - gate screen transitions and "loaded" UI on that delegate, not on the call returning.

2. Bind the error delegates

OnSaveError and OnLoadError fire once per fragment that fails, reporting the slot and fragment name. The operation continues for the other fragments - one bad fragment does not abort the rest.

On BeginPlay: **Get Crimson Save Game Manager** -> **Bind Event to On Save Error / On Load Error / On Load Complete**. In each handler, show a toast with the Slot Name and Fragment Name.
Verify
Rename or delete one fragment .sav on disk, then load the slot - OnLoadError fires for that fragment while the others still load, and OnLoadComplete reports bSuccess = false.
Design for partial failure
Because errors are per-fragment, a load can partly succeed. Surface which system failed (the FragmentName) rather than blocking the whole load, so a single corrupt fragment doesn't strand the player.

See also

  • How-To: Build a Save/Load Menu
  • API Reference -> Save Manager Subsystem -> Delegates