Search Issue Tracker

Won't Fix

Votes

0

Found in [Package]

1.3.3.

Issue ID

1200639

Regression

Yes

[Addressables] Unhandled exceptions appear when trying to catch wrapped Addressables.GetDownloadSizeAsync function

Package: Addressables

-

To reproduce:
1. Open the QA attached project "1200639.zip"
2. Press play
3. Check the console for errors

Actual result: Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException'
Expected result: there should be no exceptions

Reproduced on: 2018.4.14f1; 2020.1.0a15
Can not reproduce on 2017.4, no package manager
Introduced in: Addressable package 1.3.3 and newer

Error:
Exception encountered in operation UnityEngine.AddressableAssets.Initialization.InitializationOperation, result='', status='Failed' - Chain<Int64>: ChainOperation of Type: System.Int64 failed because dependent operation failed
Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException' was thrown., Key=someName
UnityEngine.ResourceManagement.ChainOperationTypelessDepedency`1:OnWrappedCompleted(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at Library/PackageCache/com.unity.addressables@1.4.0/Runtime/ResourceManager/Util/DelegateList.cs:69)
UnityEngine.ResourceManagement.ResourceManager:Update(Single)

Code:
void Start()
{
try {
Addressables.GetDownloadSizeAsync("someName").Completed +=DownloadSizeResult;
}
catch (Exception ex)
{
Debug.Log("GetDownloadSizeAsync error: " + ex.Message);
}
}
private void DownloadSizeResult(AsyncOperationHandle<long> obj)
{
if (obj.Status == AsyncOperationStatus.Succeeded)
{
Debug.Log("DownloadSizeResult success");
}
}

  1. Resolution Note:

    Typically throwing invalid keys at the download will result in these errors, however, these are just errors, which is why the catch is not grabbing them.

    These errors can be handled by the user in ResourceManager.ExceptionHandler, so if you wanted to handle the exception, give a better error, or warning, or ignore them all together you could create your own callback to handle it here.

    We will update documentation in the future to outline this functionality, as we do understand that it's very confusing where these errors are coming from and how to deal with them, especially in cases where you may want to retry a download or try a different server if a download fails.

Comments (2)

  1. zauberzaubar

    Feb 03, 2021 15:19

    Also it is possible to just disable the exceptions (which IMHO should be the default):
    https://forum.unity.com/threads/how-do-i-catch-an-exception-caused-by-addressables-loadcontentcatalogasync.873058/

  2. PavelKlym

    Aug 25, 2020 16:34

    Why I can't just get subscribe to Complete event and get the callback with status failed (and exception inside) instead of subscribing to ResourceManager.ExceptionHandler? How is it possible to find ResourceManager.ExceptionHandler to handle error properly without this reported issue?! Thanks to the author!

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.