[GIANT WALL(s) OF TEXT] Many Addressable things are not working correctly for us. The system downloads everything requested just fine from any location, which is great, but almost everything else doesn’t seem right. Some look like bugs, others are strange (to me) design choices, and others are just hard to understand.
We are using version 1.7.5 in Unity 2019.2.15f1.
-
[Solved in v1.7.4]
Opening the Addressables Groups takes a VERY LONG TIME if you have big assets like a 70MB audio file. So does sorting the list of groups by anything (name, path, label, etc) in that case. The window seems to load all addressable assets for a name/path/label sort, which seems weird. What about people with 2GB DLCs? -
GetDownloadSizeAsync always returns 0 for any addressable UNLESS it’s an actual remote location. i.e. File paths on a storage (even if it’s a network storage like a NAS) always return 0. Is this intended? Are there some requirements for using the method? We already use the actual packed bundles. The docs mention that cached assets will (understandably) return 0, but this happens even for the first download. I was hoping to use the size to understand if an addressable is already downloaded or not, but right now it’s impossible locally (even if on a network storage like a NAS).
-
Related to the above, are Addressables not ever cached if they are read from a file path (i.e. not http or https)? I’m asking just to be sure. When reading from a local network storage (NAS) the Addressables seem to always need to download (although the download size is 0, as seen in point 2), nevermind if the location is “Remote” or not (“Remote” is just a name, so I presume you actually internally check if it is an internet location or not to decide to cache). “Use Asset Bundle Cache” is enabled in the Group settings (we just have one Group).
-
If you are using a certain Profile, for example “Development”, and switch to another profile like “Production”, the build/load paths will update correctly in the inspector, but running in the editor or in a build will still try to load them from the previous location if they were not rebuilt. A message that tells you to rebuild if the Play Mode Script is set to read the existing bundles would help. More importantly, if you’ve already built the addressables using BOTH profiles, Development and Production, why do neither play mode nor builds can see the profile change until the addressables are (uselessly) built again?
-
The handle returned by DownloadDependenciesAsync has very big jumps in PercentComplete, and so do all other AsyncOperationHandles we’ve seen. Reading the 70MB file from our local NAS takes about 800ms in total, but the percent will be 0 until the very end, suddenly becoming 1. If reading from our internet server it takes about 17s and increases progressively from 0 all the way to about 0.45 and then jumps to 1 suddenly. In both cases we log the PercentComplete to a StringBuilder at an interval given by await Task.Delay(10). Why does this happen? Any solutions?
Example, in this case reading from an Editor Hosting Service:
-
In the beginning I didn’t understand why a remote location was downloading instantly even when the folder was not there at all, then I understood the cache existed, but I couldn’t find in the docs anything about its location (at least in the editor), and it was hard to find! After a few searches I know it’s at "C:\Users<username>\AppData\LocalLow\Unity<company>_. Maybe this could be made clearer.
-
Searching Google for Addressables-related docs (actually, all Unity docs) frequently returns links for old versions of the docs, leading to wasted time and, when unnoticed, wrong implementations or usage of obsolete methods. You may be able to request changes for the indexing of older pages by Google, or some SEO hocus pocus (I know very little about this!), but a giant red warning at the top of the old pages would be useful.

-
** [Solved]**
I don’t know how we would use a remote URL in the format https://domain.com/storage/[BuildTarget]?param=something because the bundle name goes at the end of the URL, but the parameters must come last for this to work. I posted about this here . Any ideas? -
While attempting to solve point 2 by trying to use a Hosting service I also found another problem. Addressable paths that contain accents like ã or ú fail to load on a Hosting service. For example:
Exception encountered in operation Resource<IAssetBundleResource>(info.json_835c8fcc227d35ba7764540d21d9eb03.bundle): RemoteAssetBundleProvider unable to load from url http://192.168.1.70:54662/songs_assets/m%C3%BAsicas/info.json_835c8fcc227d35ba7764540d21d9eb03.bundle, result='HTTP/1.1 404 Not Found'.
-
In this part of the docs there’s a “please note” paragraph that seems related to the previous section “Initialization objects” and not “Customizing URL Evaluation”. (I reported this in the docs page.)
-
The “Addressables Event Viewer” window does nothing until you press Clear. The Record button also seems to make zero difference, turned on or off. “Send Profiler Events” is enabled (by the way, the name and tooltip for that option refer to the event viewer as the “Addressables Profiler”).
-
Why are catalogs so big and uncompressed? I have 33 addressables, packed separately, so 33 bundles, but the catalog is 154KB because it contains info about every single asset in the Resources folder (??), which is something that can’t be updated (can it?). Why does a remote catalog need info about the Resources of the app? And compressed to deflated zip it could be 35KB. The catalog is something that users typically download each time they open the app. This behaviour can be changed but the catalog should still be checked frequently. It wastes mobile data and wastes our storage server traffic, which devs pay for every month.
-
“Update a Previous Build” regenerates ALL addressables (new names) in the group if you add a new addressable to it and don’t modify the older ones at all. This goes against the docs saying “Asset bundles that do not contain updated content are written using the same file names as those in the build selected for the update.”. Are updates not applicable for new files? How would a game like Rocksmith, with weekly content, deal with this? After opening the bundles in a hex viewer, this seems to be caused by two IDs changing inside the bundle file, which causes the hash to change. What are these IDs? Why do they change if nothing changed?
-
From what I’ve read, Addressables are built on top of Asset Bundles. Asset bundles created in a certain Unity version cannot be opened by an app built with an older version. Does this still apply to Addressables? In the case of Asset Bundles we worked around the problem by upgrading our game as normal but keeping a different project for Asset Bundles (think downloadable songs), forever stuck in time with the same Unity version, otherwise whenever we’d build asset bundles every user would have to be on the most recent game version to open them, and we want very old builds to work. If the versioning issue still happens with Addressables, is it possible to keep and build the remote Addressables on a different project, or does it have to be the same?
Apologies for the loooong post. I’d appreciate ANY pointers you can give me!
Cheers!
Daniel
UPDATE 1: I’ve since updated several points of my text, especially 2 and 4. I also added 9.
UPDATE 2: Marked 8 as solved.
UPDATE 3: Added 10.
UPDATE 4: Added 11.
UPDATE 5: Changed text on 1.
UPDATE 6: Added 12.
UPDATE 7: Marked 1 as solved (v1.7.4 solved it and 1.7.5 is now usable).
UPDATE 8: Added 13. I understand Addressables less and less.
UPDATE 9: Added 14.