Quick answer: Addressables → Build → Update a Previous Build, point at the addressables_content_state.bin from your shipped player. Never use New Build for live patches.

You shipped 1.0. You patch a level. You run a fresh build, upload bundles. Live players still load the old level. Their catalog points at hashes that don’t match the new uploads.

The Symptom

New bundle URLs return 404 in player logs. Old assets continue to load from cached catalog. Or assets load but show pre-patch state.

The Fix

Window → Asset Management → Addressables → Groups
Build → Update a Previous Build
  Pick: ServerData/[Platform]/addressables_content_state.bin
        (the .bin saved when 1.0 shipped)

Output:
  Modified bundles get new hashes
  Catalog references updated entries
  Unchanged bundles keep their hash — cached players don't re-download

Upload the new ServerData folder. Players auto-fetch the updated catalog and only re-download changed bundles.

Workflow Rules

Verifying

Run a built player against the new catalog. Profile the loads: only modified bundles should be downloaded. Old install + new content = small delta, not full re-download.

“Update a Previous Build. Old .bin in hand. Live players patch cleanly.”

Related Issues

For IL2CPP reflection stripping, see link.xml. For shader variant stripping, see keyword strip.

Save the .bin. Update from it. Patches land.