Quick answer: Addressables > Build > Clean Build > All rebuilds from scratch. Delete Library/com.unity.addressables/aa if cleans still misbehave. For CI, always do Clean Build; for dev iteration, incremental is fine.

Here is how to fix Unity Addressables build cache corrupt. You change a few assets, build Addressables, and the test build still shows the old version of a sprite. Or a new asset you added is missing despite being marked Addressable. The Addressables cache is an intricate beast — it tracks asset dependencies, groups, and serialized bundles, and when something goes wrong the symptoms are confusing.

The Symptom

Addressables builds produce incorrect or stale content:

What Causes This

ScriptableBuildPipeline (SBP) cache stale. Addressables uses SBP to build AssetBundles. SBP caches computed dependencies and hashes. If the cache becomes inconsistent — for example, after a git pull that changes files without updating mtime — incremental builds can miss changes.

Library/com.unity.addressables/aa corrupt. The Addressables runtime cache in Library. If this gets corrupted (Unity crash during build, disk issue), subsequent builds reference stale data.

Group settings changed but not applied. Changing a group’s build path, load path, or compression settings requires a Clean Build to take full effect. Incremental builds apply settings inconsistently.

content_state.bin stale. Update a Previous Build uses this file as a snapshot. If you lost or modified it, Update builds reference a different baseline than expected, producing incorrect delta bundles.

Schema changes. Modifying Addressable schema (addressable key types, custom data) can invalidate cached bundle data. Rebuild full after any schema work.

The Fix

Step 1: Clean Build. Open Window > Asset Management > Addressables > Groups. In the window menu, choose Build > Clean Build > All. Then Build > New Build > Default Build Script.

This clears the SBP cache and rebuilds every bundle. Slow (minutes, even on small projects) but authoritative. Use as your first debugging step for any inconsistency.

Step 2: Nuke the cache directory. If Clean Build still produces bad output:

# Close Unity first
rm -rf Library/com.unity.addressables
rm -rf Library/BuildCache

Reopen Unity. Let it reimport. Rebuild Addressables from scratch. This is the nuclear option but guaranteed to clear any corruption.

Step 3: Always Clean Build in CI. Incremental builds are fine for local iteration but introduce non-determinism in CI. Your build server should always start from a clean state.

// In a CI build script
using UnityEditor.AddressableAssets.Settings;

public static class CIBuild
{
    public static void BuildAddressables()
    {
        var settings = AddressableAssetSettingsDefaultObject.Settings;
        AddressableAssetSettings.CleanPlayerContent(settings.ActivePlayerDataBuilder);
        AddressableAssetSettings.BuildPlayerContent(out var result);
        if (!string.IsNullOrEmpty(result.Error))
            throw new Exception(result.Error);
    }
}

This function: (1) cleans, (2) builds fresh, (3) fails loudly on errors. CI should not allow silent Addressables failures.

Step 4: Preserve content_state.bin for Update builds. If you ship live content updates, the content_state.bin produced by the initial build is your baseline. Check it into source control (large file, use Git LFS). Each live patch runs “Update a Previous Build” against this baseline.

Losing the baseline means you cannot do delta patches — every update becomes a full rebuild with potentially different bundle hashes, breaking cached content on players’ devices.

Profile Chaining Issue

Addressables supports multiple profiles (Dev, Staging, Production) with different paths. Switching profiles in the editor sometimes does not refresh the build configuration. Always do a Clean Build after switching profiles, at minimum.

Group Schema Checks

Inspect each Addressable group. Common mistakes:

Use Window > Asset Management > Addressables > Analyze to run built-in diagnostics. Check Rules to catch duplicate dependencies, bundle size issues, and misconfigurations.

When All Else Fails

Back up your Addressables group assets. Delete the entire Addressables folder (Assets/AddressableAssetsData). Reinstall the Addressables package. Recreate groups from scratch using the backed-up settings. Rebuild. Heavy but guaranteed to reset everything.

“Addressables is fast when it works. When it does not, Clean Build is your reset button. Use it before anything else.”

Related Issues

For general Addressables load failures, see Unity Addressables Failed to Load. For memory-related issues, Addressables Memory Not Releasing covers runtime cache leaks.

Clean Build first. Cache directory second. Profile last. Debug in that order.