Quick answer: Pin Player Version Override to a stable string (e.g. 1.0.0). Build content updates against the same Override. Deploy catalog_<hash>.json + catalog_<hash>.hash alongside bundles at the configured Remote Load Path.
CDN is updated with the new bundles. Players log “catalog version mismatch” on launch. Catalog file path doesn’t match what the player computes.
The Symptom
After deploying a Content Update, players see Addressables initialization fail. Logs reference catalog hash mismatches, missing files, or 404 on a hash-suffixed JSON.
The Fix
Pin Player Version Override.
Window → Asset Management → Addressables → Profiles
Default profile:
RemoteLoadPath: https://cdn.example.com/v1/[BuildTarget]
Player Version Override: "1.0.0" // stable per player release
The player computes catalog filename as catalog_{playerVersion}.json. Remote must match.
Deploy.
cdn/v1/StandaloneOSX/
catalog_1.0.0.json
catalog_1.0.0.hash
bundle_chunkA_xxxx.bundle
bundle_chunkB_yyyy.bundle
The hash file is a small text companion. Both must be present and accessible.
Force Refresh on Launch
var updates = await Addressables.CheckForCatalogUpdates().Task;
if (updates.Count > 0)
await Addressables.UpdateCatalogs(updates).Task;
Bypasses the catalog cache; always picks up server-side changes.
Verifying
Curl the catalog URL the player computes; should return 200. Compare the hash returned by .hash file with what player logs. Match means OK.
“Pin version. Match path. Hash file present. Catalog found.”
Related Issues
For Addressables script-edit content update, see script edit update. For handle leak, see handle leak.
Pin version. Deploy hash. Players load.