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.