Quick answer: Unreal soft class pointer loaded async returning null in cooked builds? Soft refs require Async Loading Thread - enable in Project Settings or fall back to sync.

PIE works. Cooked iOS build: AsyncLoadClass on a soft class ptr returns null.

Enable Async Loading Thread

Project Settings > Engine > Streaming > Async Loading Thread Enabled. Required for soft pointer async loads on cooked builds.

Fall back to sync

If async fails, LoadClass<UObject>(...) blocks. Cleaner UX with a loading spinner during the block.

Audit per-platform

Mobile cooks strip more aggressively. Test soft ref resolution on every target platform.

“Async loading needs the async thread. Default-off in some templates is the trap.”

Enable async loading thread at project creation. Defaults to true in 5.4+, but legacy projects need the manual flip.

Related reading