Running tests in standalone player, black screen because Localization

Hello @karl_jones , congrats on releasing out of beta!

I’ve managed to update the localization package from pre9 to 1.0.5 recently. Everything seems to work fine but the Test Runner when “Run All Tests in the standalone player” is causing me problems. It’s because I am calling LocalizedString.StringChanged handler in Awake. The tests won’t start, it’s just black screen in the app.

But I am not able to reproduce it on a new project so it’s probably because of the complexity of my project. But we have not faced that issue before the upgrade. But maybe you will know some details about what’s happening.

Here’s the stack trace:

Autoconnected Player Assertion failed: Calling WaitForCompletion on an operation that is already waiting.
0x00007ffaa3cca04c (UnityPlayer)
0x00007ffaa3ccf799 (UnityPlayer)
0x00007ffaa3caff38 (UnityPlayer)
0x00007ffaa5148cd4 (UnityPlayer) UnityMain
0x00007ffaa47b0b7a (UnityPlayer) UnityMain
0x000001e5ffdbd06e (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
0x000001e5ffdbce9b (Mono JIT Code) UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
0x000001e5ffdbcbe0 (Mono JIT Code) UnityEngine.Logger:Log (UnityEngine.LogType,object)
0x000001e5bd5fcbe2 (Mono JIT Code) UnityEngine.Debug:Assert (bool,string)
0x000001e5ffd9503b (Mono JIT Code) [WaitForCurrentOperationAsyncOperationBase.cs:22] UnityEngine.Localization.WaitForCurrentOperationAsyncOperationBase`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffd95143 (Mono JIT Code) [WaitForCurrentOperationAsyncOperationBase.cs:35] UnityEngine.Localization.WaitForCurrentOperationAsyncOperationBase`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffdbc86b (Mono JIT Code) [WaitForCurrentOperationAsyncOperationBase.cs:35] UnityEngine.Localization.WaitForCurrentOperationAsyncOperationBase`1<UnityEngine.Localization.Settings.LocalizedDatabase`2/TableEntryResult<UnityEngine.Localization.Tables.StringTable, UnityEngine.Localization.Tables.StringTableEntry>>:InvokeWaitForCompletion ()
0x000001e5ffdbc64c (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<UnityEngine.Localization.Settings.LocalizedDatabase`2/TableEntryResult<UnityEngine.Localization.Tables.StringTable, UnityEngine.Localization.Tables.StringTableEntry>>:WaitForCompletion ()
0x000001e5ffdbc3bb (Mono JIT Code) [AsyncOperationHandle.cs:188] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<UnityEngine.Localization.Settings.LocalizedDatabase`2/TableEntryResult<UnityEngine.Localization.Tables.StringTable, UnityEngine.Localization.Tables.StringTableEntry>>:WaitForCompletion ()
0x000001e5ffd74703 (Mono JIT Code) [LocalizedString.cs:693] UnityEngine.Localization.LocalizedString:HandleLocaleChange (UnityEngine.Localization.Locale)
0x000001e5ffd740f3 (Mono JIT Code) [LocalizedString.cs:606] UnityEngine.Localization.LocalizedString:ForceUpdate ()
0x000001e5ffd73c37 (Mono JIT Code) [LocalizedString.cs:113] UnityEngine.Localization.LocalizedString:add_StringChanged (UnityEngine.Localization.LocalizedString/ChangeHandler)
0x000001e5ffd738db (Mono JIT Code) [CachedLocalizedString.cs:58] Utils.CachedLocalizedString:GetLocalizedString ()
0x000001e5ffd7185b (Mono JIT Code) [GameController.cs:242] Game.GameController:Awake ()
0x000001e5bdad1dd0 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ffb0996e650 (mono-2.0-bdwgc) mono_get_runtime_build_info
0x00007ffb098f2ae2 (mono-2.0-bdwgc) mono_perfcounters_init
0x00007ffb098fbb3f (mono-2.0-bdwgc) mono_runtime_invoke
0x00007ffaa46f3fad (UnityPlayer) UnityMain
0x00007ffaa46f08cc (UnityPlayer) UnityMain
0x00007ffaa46f099e (UnityPlayer) UnityMain
0x00007ffaa4721615 (UnityPlayer) UnityMain
0x00007ffaa46d03f8 (UnityPlayer) UnityMain
0x00007ffaa46cf5ed (UnityPlayer) UnityMain
0x00007ffaa46cf973 (UnityPlayer) UnityMain
0x00007ffaa474993e (UnityPlayer) UnityMain
0x00007ffaa4749d01 (UnityPlayer) UnityMain
0x00007ffaa42ebd14 (UnityPlayer) UnityMain
0x00007ffaa42ee154 (UnityPlayer) UnityMain
0x00007ffaa42ec7c9 (UnityPlayer) UnityMain
0x00007ffaa42ef454 (UnityPlayer) UnityMain
0x00007ffaa42ef7a1 (UnityPlayer) UnityMain
0x00007ffaa42ef039 (UnityPlayer) UnityMain
0x00007ffaa3983b40 (UnityPlayer)
0x00007ffaa3b0c898 (UnityPlayer)
0x000001e5ffdb7ad3 (Mono JIT Code) (wrapper managed-to-native) UnityEngine.AssetBundleCreateRequest:get_assetBundle (UnityEngine.AssetBundleCreateRequest)
0x000001e5ffdb7983 (Mono JIT Code) [AssetBundleProvider.cs:311] UnityEngine.ResourceManagement.ResourceProviders.AssetBundleResource:GetAssetBundle ()
0x000001e5ffdb76a3 (Mono JIT Code) [AssetBundleProvider.cs:348] UnityEngine.ResourceManagement.ResourceProviders.AssetBundleResource:WaitForCompletionHandler ()
0x000001e5ffda7a62 (Mono JIT Code) [ProviderOperation.cs:71] UnityEngine.ResourceManagement.AsyncOperations.ProviderOperation`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffdb7183 (Mono JIT Code) [GroupOperation.cs:43] UnityEngine.ResourceManagement.AsyncOperations.GroupOperation:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd94c9b (Mono JIT Code) [AsyncOperationHandle.cs:188] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffda7983 (Mono JIT Code) [ProviderOperation.cs:64] UnityEngine.ResourceManagement.AsyncOperations.ProviderOperation`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffdb7183 (Mono JIT Code) [GroupOperation.cs:43] UnityEngine.ResourceManagement.AsyncOperations.GroupOperation:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffd95653 (Mono JIT Code) [ChainOperation.cs:172] UnityEngine.ResourceManagement.ChainOperationTypelessDepedency`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd94c9b (Mono JIT Code) [AsyncOperationHandle.cs:188] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd957c3 (Mono JIT Code) [ChainOperation.cs:180] UnityEngine.ResourceManagement.ChainOperationTypelessDepedency`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffd95653 (Mono JIT Code) [ChainOperation.cs:172] UnityEngine.ResourceManagement.ChainOperationTypelessDepedency`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd95426 (Mono JIT Code) [AsyncOperationHandle.cs:584] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle:WaitForCompletion ()
0x000001e5ffd952a3 (Mono JIT Code) [WaitForCurrentOperationAsyncOperationBase.cs:45] UnityEngine.Localization.WaitForCurrentOperationAsyncOperationBase`1<TObject_REF>:InvokeWaitForCompletion ()
0x000001e5ffd94f48 (Mono JIT Code) [AsyncOperationBase.cs:155] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd94c9b (Mono JIT Code) [AsyncOperationHandle.cs:188] UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1<TObject_REF>:WaitForCompletion ()
0x000001e5ffd93c23 (Mono JIT Code) [LocalizationSettings.cs:278] UnityEngine.Localization.Settings.LocalizationSettings:GetInitializationOperation ()
0x000001e5ffd937be (Mono JIT Code) [LocalizationSettings.cs:106] UnityEngine.Localization.Settings.LocalizationSettings:get_InitializationOperation ()
0x000001e5ffd7607b (Mono JIT Code) [LocalizedDatabase.cs:253] UnityEngine.Localization.Settings.LocalizedDatabase`2<TTable_REF, TEntry_REF>:GetTableAsync (UnityEngine.Localization.Tables.TableReference,UnityEngine.Localization.Locale)
0x000001e5ffd7531f (Mono JIT Code) [LocalizedDatabase.cs:456] UnityEngine.Localization.Settings.LocalizedDatabase`2<TTable_REF, TEntry_REF>:GetTableEntryAsync (UnityEngine.Localization.Tables.TableReference,UnityEngine.Localization.Tables.TableEntryReference,UnityEngine.Localization.Locale,UnityEngine.Localization.Settings.FallbackBehavior)
0x000001e5ffd74322 (Mono JIT Code) [LocalizedString.cs:683] UnityEngine.Localization.LocalizedString:HandleLocaleChange (UnityEngine.Localization.Locale)
0x000001e5ffd740f3 (Mono JIT Code) [LocalizedString.cs:606] UnityEngine.Localization.LocalizedString:ForceUpdate ()
0x000001e5ffd73c37 (Mono JIT Code) [LocalizedString.cs:113] UnityEngine.Localization.LocalizedString:add_StringChanged (UnityEngine.Localization.LocalizedString/ChangeHandler)
0x000001e5ffd738db (Mono JIT Code) [CachedLocalizedString.cs:58] Utils.CachedLocalizedString:GetLocalizedString ()
0x000001e5ffd7185b (Mono JIT Code) [GameController.cs:242] Game.GameController:Awake ()
0x000001e5bdad1dd0 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007ffb0996e650 (mono-2.0-bdwgc) mono_get_runtime_build_info
0x00007ffb098f2ae2 (mono-2.0-bdwgc) mono_perfcounters_init
0x00007ffb098fbb3f (mono-2.0-bdwgc) mono_runtime_invoke
0x00007ffaa46f3fad (UnityPlayer) UnityMain
0x00007ffaa46f08cc (UnityPlayer) UnityMain
0x00007ffaa46f099e (UnityPlayer) UnityMain
0x00007ffaa4721615 (UnityPlayer) UnityMain
0x00007ffaa46d03f8 (UnityPlayer) UnityMain
0x00007ffaa46cf5ed (UnityPlayer) UnityMain
0x00007ffaa46cf973 (UnityPlayer) UnityMain
0x00007ffaa474993e (UnityPlayer) UnityMain
0x00007ffaa4749d01 (UnityPlayer) UnityMain
0x00007ffaa42ebd14 (UnityPlayer) UnityMain
0x00007ffaa42ee154 (UnityPlayer) UnityMain
0x00007ffaa42ec7c9 (UnityPlayer) UnityMain
0x00007ffaa42ef454 (UnityPlayer) UnityMain
0x00007ffaa42ef7a1 (UnityPlayer) UnityMain
0x00007ffaa42ef039 (UnityPlayer) UnityMain
0x00007ffaa42d6e34 (UnityPlayer) UnityMain
0x00007ffaa42c31de (UnityPlayer) UnityMain
0x00007ffaa42c32af (UnityPlayer) UnityMain
0x00007ffaa42c90a6 (UnityPlayer) UnityMain
0x00007ffaa3cfc947 (UnityPlayer)
0x00007ffaa3cfa99d (UnityPlayer)
0x00007ffaa3d0026b (UnityPlayer)
0x00007ffaa3d0122b (UnityPlayer) UnityMain
0x00007ff6312f11f2 (PlayerWithTests)
0x00007ffba1f67034 (KERNEL32) BaseThreadInitThunk
0x00007ffba2c22651 (ntdll) RtlUserThreadStart

Thank you for any insights!

7628296–949285–stackt.txt (11.6 KB)

Seems the code block can’t display stack trace so the file is attached.

Hey.
What version did you upgrade from?
There was a bug in Addressables which caused the build and load paths to become corrupted.
Number 5 here Troubleshooting Addressables Issues

You may also be able to fix it by updating to the latest Addressables version.

From pre9 (pre10 was bugged) version. Now I am on the latest addressables (1.19.11) as well localization (1.0.5) but Unity 2020.3.14f1. I went through your check list and everything is OK. Build is working well, it’s just the Test runner.

My only option to upgrade is to try the latest LTS unity (2020.3.21f1)

Autoconnected Player Assertion failed: Calling WaitForCompletion on an operation that is already waiting.

This could be a clue to what is going wrong. Try disabling WaitForCompletion on the LocalizedStrings.