Quick answer: Unreal Blueprint AsyncLoadClass throwing on PIE shutdown? Async load completes after the world is torn down - cancel pending loads in EndPlay.
Quit PIE during a loading screen. Editor log: async load handle invalid; world destroyed.
Cancel in EndPlay
Handle->CancelHandle();Cancel before the world dies. Async load completes gracefully; no error.
Or use weak references
Capture async target as TWeakObjectPtr. Resolved-but-dead is null; safe to skip.
Validate in callback
First line of callback: if !World.IsValid() return. Defensive; common pattern in async code.
“Async loads outlive their context. Cleanup paths are mandatory.”
Build a SafeAsyncLoad wrapper. Captures world, cancels on EndPlay, validates in callback. Reusable.