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.

Related reading