Search Issue Tracker




Found in


Issue ID




"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 (5)

  1. 360710265e5c7ba4ecf1e526d6193ffa?d=mm


    Apr 09, 2019 10:10

    I've the equal problem, however we use a unique home-made package device within the editor for all our assets at some point of improvement. So i get it within the editor for ~2 hundred object when I try to build our property database. I tried purging the whole thing and reinstalling harmony, no good fortune. If anybody have any concept, please proportion!

  2. 6606c89142c6190307da63d3741b83ae?d=mm


    Mar 28, 2019 09:13

    hello, thanks for this information is helpful for me, clear cache in ie is also helped me to solve my problem related to this topic.

  3. 6606c89142c6190307da63d3741b83ae?d=mm


    Mar 28, 2019 09:10


  4. Dab0f761661a425f0c52b7aed6167e1e?d=mm


    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;


    //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.