Localization 1.5.3 throwing null reference exception errors in 2022.3 lts

Hi!

I’ve not dug deep into how the localization system works, so please excuse my ignorance here. Any guidance would be much appreciated…

I’m using the 1.5.3 package in Unity 2022.3.44.

I’m getting a variety of null reference exception errors from the Localization package, specifically JsonSerializerTrackedObject.

These two in ApplyLocale:

[12/20/2024 13:37:12] <Exception>: NullReferenceException: Object reference not set to an instance of an object
UnityEngine.Localization.PropertyVariants.TrackedObjects.JsonSerializerTrackedObject.ApplyLocale (UnityEngine.Localization.Locale variantLocale, UnityEngine.Localization.Locale defaultLocale) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/Tracked Objects/JsonSerializerTrackedObject.cs:183)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.ApplyLocaleVariant (UnityEngine.Localization.Locale locale, UnityEngine.Localization.Locale fallback) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:197)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.ApplyLocaleVariant (UnityEngine.Localization.Locale locale) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:171)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.RequestUpdate () (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:269)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.<RegisterChanges>b__18_0 (System.String _) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:224)
UnityEngine.Localization.LocalizedString.InvokeChangeHandler (System.String value) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Localized Reference/LocalizedString.cs:699)
UnityEngine.Localization.LocalizedString:AutomaticLoadingCompleted(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.ResourceManagement.AsyncOperations.<>c__DisplayClass60_0:<add_CompletedTypeless>b__0(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.Localization.Operations.LoadTableOperation`2:TableLoaded(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.ResourceManagement.Util.DelayedActionManager:LateUpdate() (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelayedActionManager.cs:162)
[10/25/2024 09:07:08] <Exception>: NullReferenceException: Object reference not set to an instance of an object
UnityEngine.Localization.PropertyVariants.TrackedObjects.JsonSerializerTrackedObject.ApplyLocale (UnityEngine.Localization.Locale variantLocale, UnityEngine.Localization.Locale defaultLocale) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/Tracked Objects/JsonSerializerTrackedObject.cs:169)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.ApplyLocaleVariant (UnityEngine.Localization.Locale locale, UnityEngine.Localization.Locale fallback) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:197)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.ApplyLocaleVariant (UnityEngine.Localization.Locale locale) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:171)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.RequestUpdate () (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:269)
UnityEngine.Localization.PropertyVariants.GameObjectLocalizer.<RegisterChanges>b__18_0 (System.String _) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/GameObjectLocalizer.cs:224)
UnityEngine.Localization.LocalizedString.InvokeChangeHandler (System.String value) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Localized Reference/LocalizedString.cs:699)
UnityEngine.Localization.LocalizedString:AutomaticLoadingCompleted(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.ResourceManagement.AsyncOperations.<>c__DisplayClass60_0:<add_CompletedTypeless>b__0(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.Localization.Operations.LoadTableOperation`2:TableLoaded(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.AsyncOperation:InvokeCompletionEvent() (at C:/build/output/unity/unity/Runtime/Export/Scripting/AsyncOperation.cs:21)

And another:

[12/10/2024 15:58:35] <Exception>: NullReferenceException: Object reference not set to an instance of an object
UnityEngine.Localization.PropertyVariants.TrackedObjects.JsonSerializerTrackedObject+DeferredJsonStringOperation.OnStringLoaded (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[TObject] asyncOperationHandle) (at ./Library/PackageCache/com.unity.localization@1.5.3/Runtime/Property Variants/Tracked Objects/JsonSerializerTrackedObject.cs:82)
DelegateList`1[T].Invoke (T res) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.Debug:LogException(Exception)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:79)
UnityEngine.ResourceManagement.AsyncOperations.<>c__DisplayClass60_0:<add_CompletedTypeless>b__0(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.ResourceManagement.AsyncOperations.<>c__DisplayClass60_0:<add_CompletedTypeless>b__0(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.Localization.Operations.LoadTableOperation`2:TableLoaded(AsyncOperationHandle`1)
DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelegateList.cs:75)
UnityEngine.ResourceManagement.Util.DelayedActionManager:LateUpdate() (at ./Library/PackageCache/com.unity.addressables@1.22.2/Runtime/ResourceManager/Util/DelayedActionManager.cs:162)

I have not been able to consistently reproduce these errors. If these are user errors, are there any good ways to track down the source of the error?

Many thanks!

Hi,
We have a patch release coming out soon 1.5.4 that fixes some issues around this area. Its ready for release, we are just working through some issues with a new package release system. When it comes out could you please try that, if it doesnt help then please file a bug report. Unity QA: Building quality with passion

Hi Karl,
Thanks, I will do.

1 Like