Search Issue Tracker

Duplicate

Votes

47

Found in

2017.3.0f3

Issue ID

1014127

Regression

Yes

"Cancelling DisplayDialog.." error is being thrown when entering the play mode after AssetBundle.Unload(false)

Asset Bundles

-

To reproduce:
1. Open user's attached project
2. Switch platform to iOS or PC
3. In the menu bar press Project -> AssetBundle
4. Enter play mode and inspect the console

Note: If you can't reproduce the error try reproducing it few times.

Expected result: No errors should be thrown, asset bundle is loaded successfully
Actual result: "Cancelling DisplayDialog because it was run from a thread that is not the main thread: Opening file failed"
^ error is being thrown

Reproduced with: Unity 2017.1.3p2, 2017.2.1p4, 2017.3.1p3, 2018.1.0b11, 2018.2.0a4

Note: Reproduced with iOS and PC platforms but wasn't able to reproduce with Android platform. Also, commenting AssetBundle.Unload(false) in App.cs seems to fix the issue.

Comments (2)

  1. kent_omichi

    May 16, 2018 10:41

    Not sure its helpful or not though I fixed by replacing syncload method with asyncload.
    The cause was calling assetbundle.load() in coroutine. Unity somehow changed coroutine behaviour that coroutine won't wait sync job to be done anymore so if you put assetbundle.load() in corouitne change to below. That fixed the problem in my case.

    //Unity will wait AsyncJob to be done
    AssetBundleRequest request = AssetBundle.LoadAllAssetsAsync();
    yield return request;

    or

    //Unity will wait AsyncJob to be done
    AssetBundleRequest request = unityAssetBundle.LoadAssetAsync("your asset name");
    yield return request;

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.