Quick answer: Unity AssetBundle cache going corrupt after mobile pause/resume? Suspended loads leave partial files - validate cache on resume.
Player suspends app mid-download. Resume: bundles fail to load with corrupt signature.
Validate on resume
OnApplicationPause(false): walk the cache directory; reject any partial files (size 0 or matching .tmp suffix).
Use Caching.markAsUsed
Marks a bundle as recently used; suspended loads can be re-queued safely.
Or atomic writes
Download to .tmp; rename atomically on completion. Suspended loads leave .tmp; never corrupt the canonical file.
“Mobile suspension is unpredictable. Downloads need transactional safety.”
Treat downloads as atomic from day one. The discipline avoids the bug class entirely.