# ArgumentException: AssetBundle 'characters' cannot be loaded. The bundle version (2.1.0) does not match the expected version (2.0.0).

- **ID:** `unity/asset-bundle-version-mismatch`
- **Domain:** unity
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

AssetBundle was built with a different version identifier than the one expected by the application, causing a mismatch in serialization layout.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 2020.3 | active | — | — |
| 2021.3 | active | — | — |
| 2022.3 | active | — | — |

## Workarounds

1. **Ensure AssetBundle version is consistent by using a build script that writes the same version string. Example: AssetBundleBuild build = new AssetBundleBuild(); build.assetBundleName = "characters"; build.assetNames = assets; BuildPipeline.BuildAssetBundles("Assets/AssetBundles", new[] { build }, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);** (95% success)
   ```
   Ensure AssetBundle version is consistent by using a build script that writes the same version string. Example: AssetBundleBuild build = new AssetBundleBuild(); build.assetBundleName = "characters"; build.assetNames = assets; BuildPipeline.BuildAssetBundles("Assets/AssetBundles", new[] { build }, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
   ```
2. **Clear the AssetBundle cache and force re-download: Caching.ClearCache(); then load the bundle from remote URL.** (80% success)
   ```
   Clear the AssetBundle cache and force re-download: Caching.ClearCache(); then load the bundle from remote URL.
   ```
3. **Use AssetBundleManifest to verify version before loading: manifest.GetAllAssetBundles() and compare version strings at runtime.** (85% success)
   ```
   Use AssetBundleManifest to verify version before loading: manifest.GetAllAssetBundles() and compare version strings at runtime.
   ```

## Dead Ends

- **** — The version mismatch is due to a version string in the bundle metadata, not the Unity version. Rebuilding without updating the version string still causes mismatch. (60% fail)
- **** — AssetBundles are binary files with checksums; manual editing corrupts the bundle and causes load failures. (95% fail)
- **** — No public API exists to skip version validation; modifying internal code is unstable and unsupported. (80% fail)
