In backoffice when right clicking on the current users name and selecting My settings (or similar, where it is possible to change the language and mine is not English - which I wanted to change :-)), Episerver throws the following exception:
[ArgumentNullException: Value cannot be null. Parameter name: resourceKey] EPiServer.Framework.Localization.LocalizationService.GetStringByCulture(String resourceKey, FallbackBehaviors fallbackBehavior, String fallback, CultureInfo culture) +339 EPiServer.UI.WebControls.TabStrip.LoadPlugIns() +447 EPiServer.UI.WebControls.TabStrip.OnInit(EventArgs e) +38 System.Web.UI.Control.InitRecursive(Control namingContainer) +391 System.Web.UI.Control.InitRecursive(Control namingContainer) +184 System.Web.UI.Control.AddedControl(Control control, Int32 index) +204 System.Web.UI.ControlCollection.Add(Control child) +157 EPiServer.UI.Edit.MySettings.CreateChildControls() +223 System.Web.UI.Control.EnsureChildControls() +116 System.Web.UI.Control.PreRenderRecursiveInternal() +49 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4716It happens only if Echo is not there in fallbackBehaviour, my config:
localization fallbackBehavior="FallbackCulture" fallbackCulture="en"
I debugged it through in the LoadPlugins when it is trying to load plugn AssemblyName = "EPiServer.UI" TypeName = "EPiServer.UI.Edit.UserGuiSettings" from AssemblyName = "EPiServer.UI" it fetches the resource /admin/edituser/userguisettings/description once, the system returns an empty string and then for some reason it gets fetched again in LoadPlugins and then comes the ArgumentException. So the code is like this:
LocalizationService.Current.GetString(LocalizationService.Current.GetString("/admin/edituser/userguisettings/description"))
I think the resource should not be fetched like this. Also tried with later Episerver.UI package 11.21.4