Initialise throws error if build does not include a catalogue, I intend to download myself

Hi there

If I use the clean functionality in the addressables window, and build a Windows player, I can see that there is no streaming assets folder. There is no ‘catalogue’ shipped with the build. This is the intention. I want to download my own using *LoadContentCatalogAsync*. This works fine, and my addressable assets load correctly, however I always get an exception on startup:

Addressables - Unable to load runtime data at location UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[[UnityEngine.AddressableAssets.Initialization.ResourceManagerRuntimeData, Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]].
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:LogFormat(LogType, String, Object[])
UnityEngine.Debug:LogWarningFormat(String, Object[])
UnityEngine.AddressableAssets.AddressablesImpl:LogWarningFormat(String, Object[]) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\AddressablesImpl.cs:215)
UnityEngine.AddressableAssets.Addressables:LogWarningFormat(String, Object[]) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\Addressables.cs:187)
UnityEngine.AddressableAssets.Initialization.InitializationOperation:Execute() (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\Initialization\InitializationOperation.cs:63)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:InvokeExecute() (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:409)
UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:Start(ResourceManager, AsyncOperationHandle, DelegateList`1) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\ResourceManager\AsyncOperations\AsyncOperationBase.cs:403)
UnityEngine.ResourceManagement.ResourceManager:StartOperation(AsyncOperationBase`1, AsyncOperationHandle) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\ResourceManager\ResourceManager.cs:407)
UnityEngine.AddressableAssets.Initialization.InitializationOperation:CreateInitializationOperation(AddressablesImpl, String, String) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\Initialization\InitializationOperation.cs:55)
UnityEngine.AddressableAssets.AddressablesImpl:InitializeAsync(String, String, Boolean) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\AddressablesImpl.cs:382)
UnityEngine.AddressableAssets.AddressablesImpl:InitializeAsync() (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\AddressablesImpl.cs:391)
UnityEngine.AddressableAssets.AddressablesImpl:get_ChainOperation() (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\AddressablesImpl.cs:120)
UnityEngine.AddressableAssets.AddressablesImpl:LoadContentCatalogAsync(String, String) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\AddressablesImpl.cs:398)
UnityEngine.AddressableAssets.Addressables:LoadContentCatalogAsync(String, String) (at C:\Users\Timur\Documents\AddressablesTest\Library\PackageCache\com.unity.addressables@1.6.2\Runtime\Addressables.cs:258)

I’ll flag this for the team to take a look - which version of Addressables are you using?

Hi Trey thanks for the reply.

I am using Addressables 1.6.2 with Unity 2020.1.0b7 (I am a little behind!)

For some insight, my current solution is a custom editor build script where I:

  • Swap to ScriptBuild Profile
  • BuildPath to MyProj/Builds/…
  • Build Addressables
  • Set BuildPath to MyProj/Empty/
  • Clean Addressables
  • Set all Addressables groups ‘include in build’ state to false.
  • Build Addressables
  • Restore Addressables groups ‘include in build’ state.
  • Restore original Profile

This gives me my bundles, and means my next build will include an empty catalogue data. All works as I want, but would be nice to be able to ship without having to do this. This means that any time I want to build the player, I do something like this to ensure the empty catalogue is present:

  • Swap to ScriptBuild Profile
  • Set BuildPath to MyProj/Empty/
  • Clean Addressables
  • Set all Addressables groups ‘include in build’ state to false.
  • Build Addressables
  • Restore Addressables groups ‘include in build’ state.
  • Restore original Profile
  • Build Player

It was suggested that you upgrade to version 1.12. If that doesn’t sort it out, please file a bug report for us so that we might investigate further. :slight_smile: