This is a bit of supposition on our part. We have quite a complex setup.
In our case each prefab is a separate .bundle.
Prefab A & Prefab B may share a dependency (e.g. a Material “brickMat”). In this example, the Material is also in its own .bundle.
Prefab A & Prefab B may be published (built & uploaded to S3) independently and at separate times.
Say Prefab A gets published in January and lives at http://…/January/A.bundle
Once uploaded, the shared material gets uploaded to http://…/Shared/brickMat.bundle
Then, Prefab B gets published in Feb to: http://…/February/B.bundle and at this point, the brickMat.bundle is overwritten at …/Shared/brickMat.bundle.
At runtime we use InternalIdTransformFunc to resolve the paths as appropriate. Our build path for our addressables are essentially constant and we resolve at runtime.
The issue
Loading one addressable after the other (no matter the order), on the second load we receive the error
The AssetBundle 'https://..../Shared/brickMat.bundle' can't be loaded because another AssetBundle with the same files is already loaded.
Despite the bundle being requested from exactly the same path both times and it being the same bundle.
Our theory is that a load is attempted on the bundle, even though it has already been downloaded because the check if it was previously downloaded is done via another internal id or else pre-transformed path. This makes some sense given that indeed, brickMat.bundle may have changed between when Prefab A & B were published so have a different catalog and perhaps internal id?
In our case this behaviour is ‘safe’ by policy as we ensure a shared bundle (eg brickMat.bundle) only contains changes that we consider compatible with either A & B.
We would super appreciate the ability to prevent this error. At the very least, the ability to handle the exception.
Although tangential I should note that we already have “Unique Bundle IDs” enabled.
N.B. If the setup above sounds a bit odd it’s because I’ve tried to simplify the example. Happy to hop on a call if more useful.
Many thanks in advance.