Addressable.CheckForCatalogUpdates() does not work

Addressable.CheckCatalogUpdates() is not working.
The desired value should have a catalog list of 0 or more to be updated.

The current environment has set a static variable called {Config.RemoteLoadPath} to dynamically modify Remote.LoadPath externally.

And I checked the Only update catalogs manageably in AddressableAssetSettings.

There are three bundles, one set to Local and the other two set to Remote.

In the above environment, the asset included made 3 different builds, uploaded to S3, and tested them by changing the Config.RemoteLoadPath address on the web.

After Addressables.InitializeAsync(), Resource Locators have confirmed that the Path changes.

But

var checkForUpdatesHandle = Addressables.CheckForCatalogUpdates(true);
await checkForUpdatesHandle;

if (checkForUpdatesHandle.Status == AsyncOperationStatus.Succeeded)
{
    var catalogsToUpdate = checkForUpdatesHandle.Result;
    Debug.Log($"{catalogsToUpdate.Count}");
}

The log of the above code is showing as 0.
What am I missing?

For your information, I ran the editor again when I did Initialize.

Please understand that I used a translator because I am not good at English.

Addressable version : 2.2.2

Hello, I’m having the same problem, so I wrote a code like this;

  IEnumerator Initaddressable()
  {
      var init = Addressables.InitializeAsync();
      yield return init;

      if (init.Status == AsyncOperationStatus.Succeeded)
      {
          AsyncOperationHandle checkCatalogOperation = Addressables.CheckForCatalogUpdates(false);
          yield return checkCatalogOperation;

          if (checkCatalogOperation.Status == AsyncOperationStatus.Succeeded)
          {
              Debug.Log("Addressables: Catalog check successful");

              var result = checkCatalogOperation.Result as List<string>;
              if (result != null)
              {
                  if (result.Count > 0)
                  {
                      Debug.Log("Addressables: There are catalogs to update");
                  }
                  else
                  {
                      Debug.Log("Addressables: Catalog check returned 0");
                  }
              }
              else
              {
                  Debug.Log("Addressables: No catalogs to update");
              }
          }
          else
          {
              Debug.Log("Addressables: Catalog check failed");
          }
      }
      else
      {
          Debug.Log("Addressables: Initialization failed");
      }

      yield return null;

  }

I get the debug “Addressables: Catalog check returned 0” Did you find a solution?

I haven’t found a solution yet.
I sent an e-mail to inquire in such a frustrating situation.

Will you let me know how it turns out?

Same issue… I didn’t find any solution to this, yet.

I am surprised that Addressable is so faulty and it is very difficult to find content on this subject, examining the documents sometimes does not help. Do you have a solution to detect when a new update is made? I am trying to detect and download it when I make a new update, but I failed.

There was no answer to the mail yet.

From what I’ve checked until recently

After initialization, I checked that the CanUpdateContent field of Locators is false.

Does anyone know how to turn this into true?

I’ll let you know about the current testing status.

After downgrading the version, I set a similar option and tested it, and it was successful.
Addressable Version : 1.21.21

The CanUpdateContent field that I checked before was set to ‘true’ normally.

I need to check if there are any settings I missed in version 2.2.2.

In the previous version, CanUpdateContent is set up normally, but I don’t know why it’s not working in the latest version.

As it comes up to version 2.2.2, the Inspector has changed so much that I can’t figure out exactly what else I need.

I am confused because the description of Unity Document is also based on the previous version.

Please check it out

Can you send me an image of the setting you made? What I want to do is to compare the cache and cloud when I update the cloud and if there is a difference, calculate the download size and download it.



There’s nothing special about it.

I made some remote-related settings.

With this similar setting, the operating results of versions 2.2.2 and earlier are different.

I did a little more analysis.


When checking for updates, I checked the Resource LocatorInfo.CanUpdateContent and found that I was creating an update list.

This is the same version as version 2.2.2 and version 1.21.21.


Version : 1.21.21


Version : 2.2.2

Looking at the pictures above, for CanUpdateContent to be true, the counter of Dependencies must be 2.

But if you look at the 2.2.2 version, I’m doing Add 3 times in CreateCatalogLocationWithHashDepending, did I get it wrong?

From what I understand, I think it’s because of that.

The code above may not be the problem.
However, in version 2.2.2, the list counts as three.

I worked it out in a primitive way

I tried a lot of different ways to make a detour.

Making the counter of Dependencies 2 has created a different issue.

So I changed “CatalogLocation.Dependencies.Count==2” to “CatalogLocation.Dependencies.Count==3” in the logic of ResourceLocatorInfo.CanUpdateContent.

Since then, there have been no major issues related to the update.

But I still don’t know if this is the normal way.

Because I don’t know why Unity made it like this.

I hope to hear from Unity as soon as possible.

(I don’t think it checks when I update several more versions of the bundle and go back to the old version, does anyone know how to fix this?)