Hi there!
I’m having trouble with my addressables setup. It’s likely something I don’t understand but it might also be a bug.
This is my setup:
- I’m using Addressables
2.2 - I’m using Unity
6000.0.31f1 - I have Local Addressables
- I have Remote Addressables uploaded to Unity CCD using the
CCD Manager - In the
Addressable Asset SettingsI have checkedBuild Remote Catalog, setBuild & Load PathstoRemoteand checkedOnly update catalogs manually
This is my problem:
- When I make a fresh
Playerbuild (Android) right after I have made aBuild to CCDeverything works as expected and my app loads all remote addressables correctly - If I now update some remote addressables and choose
Update Previous BuildfromBuild to CCD, everything still works correctly; my app loads all remote addressables and they have been updated - But if I don’t touch the remote addressables, make 1 small change in a shadergraph (the shadergraph is a local addressable), rebuild the local addressables (after choosing
Clear Build Cachein theAddressables Groupswindow) and then make a newPlayerbuild, this new app will give 404 errors because it is trying to load remote addressables from a seemingly local catalog.
This is the specific error message:
RemoteProviderException : Unable to load asset bundle from : https://[...].client-api.unity3dusercontent.com/client_api/v1/environments/[...]/release_by_badge/latest/entry_by_path/content/?path=/[...].bundle UnityWebRequest result : ProtocolError : HTTP/1.1 404 Not Found
What I know:
- The
catalogfrom my local addressables build (the one in theaafolder) is not the same as the remote one (hash and bin), so if it uses this one, it will indeed find the wrong addressables - If I copy the content of the remote
catalog_version.binandcatalog_version.hashto the local catalogs, everything works as expected, including the small shadergraph change, but I shouldn’t have to do this manually Addressables.CheckForCatalogUpdatesandAddressables.UpdateCatalogsshould fetch the remote catalog if the hash of the one currently in use (seemingly the local one) is different from the remote one, but when I runAddressables.CheckForCatalogUpdates, I get nothing back so the code thinks the catalog is up-to-date.
This is my CheckCatalog Function:
private static IEnumerator CheckCatalogs()
{
var catalogsToUpdate = new List<string>();
var checkForUpdateHandle = Addressables.CheckForCatalogUpdates();
checkForUpdateHandle.Completed += op => catalogsToUpdate.AddRange(op.Result);
yield return checkForUpdateHandle;
if (catalogsToUpdate.Count > 0)
{
Debug.Log($"Updating {catalogsToUpdate.Count} catalogs...");
var updateHandle = Addressables.UpdateCatalogs(catalogsToUpdate);
yield return updateHandle;
}
else
{
Debug.Log("All catalogs up to date");
}
}
So basically I’m looking for the answer to the following question:
How can I make absolutely sure that a new Player build uses the latest Remote catalog for loading the addressables?
Any help would be greatly appreciated and if you are missing any information, please let me know!
Kind regards,
Jordi
EDIT: it turned out that the new player build updated the hash of local addressables which means that when downloading the remote catalog, some remote assets referenced old local addressables which cannot be found anymore. When using CCD, make sure to reupload/update your remote assets every time you make/deploy a new player build!

















