CultureNotFoundException - Culture is not supported - Remote Desktop Manager
When I try to set a password on a new or existing entry, I always receive the CultureNotFoundException.
I already tried changing my culture to English (UK) for my current user, new users and system.
.NET Desktop 8 and RDM 2024.1 were reinstalled.
Local Devulutions appdata folder was also deleted.
No success so far...
Version: 2024.1.28.0 64-bit
Culture: English (United States)
CultureNotFoundException - Culture is not supported. (Parameter 'culture') 4096 (0x1000) is an invalid culture identifier. at System.Globalization.CultureInfo.GetCultureInfo(Int32 culture) at System.Windows.Forms.InputLanguage.get_LanguageTag() at System.Windows.Forms.InputLanguage.get_Culture() at DevExpress.XtraEditors.TextEditController.InputHandler.InputHandler.get_AllowUpdateRightToLeft() at DevExpress.XtraEditors.TextEditController.InputHandler.InputHandler.CheckTextDirection(Keys key, Boolean keyUp) at DevExpress.XtraEditors.TextEditController.TextEditController.OnKeyDown(KeyEventArgs e) at DevExpress.XtraEditors.TextEdit.AdvTextEditWorkingStrategy.OnKeyDown(KeyEventArgs keyEventArgs) at DevExpress.XtraEditors.TextEdit.OnKeyDown(KeyEventArgs e) at Devolutions.RemoteDesktopManager.Controls.PasswordTextBox.OnKeyDown(KeyEventArgs e) at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m) at System.Windows.Forms.Control.WmKeyChar(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at DevExpress.Utils.Controls.ControlBase.BaseWndProc(Message& m) at DevExpress.XtraEditors.TextEdit.BaseEditWndProc(Message& msg) at DevExpress.XtraEditors.TextEdit.WndProc(Message& msg) at System.Windows.Forms.NativeWindow.Callback(HWND hWnd, MessageId msg, WPARAM wparam, LPARAM lparam) ------------------------ extended stack ------------------------ at Devolutions.RemoteDesktopManager.Forms.FrmErrorMessage.ShowErrorMessage(Exception exception, String message, String title) at Devolutions.RemoteDesktopManager.Forms.FrmErrorMessage.ShowErrorMessage(Exception exception, String title) at Devolutions.RemoteDesktopManager.Managers.LogManager.OnThreadException(Object sender, ThreadExceptionEventArgs t) at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception ex) at System.Windows.Forms.NativeWindow.Callback(HWND hWnd, MessageId msg, WPARAM wparam, LPARAM lparam) at Windows.Win32.PInvoke.DispatchMessage(MSG* lpMsg) at System.Windows.Forms.Application.ComponentManager.Microsoft.Office.IMsoComponentManager.FPushMessageLoop(UIntPtr dwComponentID, msoloop uReason, Void* pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(msoloop reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(msoloop reason, ApplicationContext context) at System.Windows.Forms.Form.ShowDialog(IWin32Window owner) at DevExpress.XtraEditors.XtraForm.ShowDialog(IWin32Window owner) at Devolutions.RemoteDesktopManager.Managers.ActionManager.EditConnection(IConnectionSource source) at Devolutions.RemoteDesktopManager.Managers.SessionMenuManager.MnuEditConnection_Click(Object sender, EventArgs e) at Devolutions.RemoteDesktopManager.Controls.EnhancedBarButtonItem.OnClick(BarItemLink link) at DevExpress.XtraBars.BarItemLink.OnLinkClick() at DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs) at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link) at DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link) at DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e) at DevExpress.XtraBars.Controls.CustomPopupBarControl.OnMouseUp(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at DevExpress.XtraBars.Controls.CustomControl.WndProc(Message& msg) at System.Windows.Forms.NativeWindow.Callback(HWND hWnd, MessageId msg, WPARAM wparam, LPARAM lparam) at Windows.Win32.PInvoke.DispatchMessage(MSG* lpMsg) at System.Windows.Forms.Application.ComponentManager.Microsoft.Office.IMsoComponentManager.FPushMessageLoop(UIntPtr dwComponentID, msoloop uReason, Void* pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(msoloop reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(msoloop reason, ApplicationContext context) at Devolutions.RemoteDesktopManager.Program.Main(String[] args)
Hello,
We are aware of and still investigating this issue. This seems to be a conflict happening between a 3rd party control we are using, and one of the recent Windows update.
We are hard at work attempting to replicate this issue as well as finding a fix for it (whether through our own means or through the 3rd party in question).
The only workaround we can provide you for now is the following: You can type the password in anywhere else (such as a notepad), copy it to your clipboard, and then use your mouse (generally the right click) to paste the password directly into the field.
This seems to be a conflict with Windows when the native OS has a problem with certain culture. (Note that simply changing your region/keyboard settings generally does not modify this particular culture).
If you can provide us with the native culture from your operating system, this may help us in our investigation.
Regards,
Jafran Majeau
Thank you for the reply.
The issue started for me about 6 months ago, I think. Can't remember exactly.
I will try the workaround.
Looks like everything is default en-US in my case.
Checking my initial setup language:
PS C:\Users\user> Get-ItemPropertyValue -Path "HKLM:\System\CurrentControlSet\Control\Nls\Language" -Name "InstallLanguage" 0409
PS C:\Users\user> [CultureInfo]::InstalledUICulture | fl
Parent : en
LCID : 1033
KeyboardLayoutId : 1033
Name : en-US
IetfLanguageTag : en-US
DisplayName : English (United States)
NativeName : English (United States)
EnglishName : English (United States)
TwoLetterISOLanguageName : en
ThreeLetterISOLanguageName : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo : CompareInfo - en-US
TextInfo : TextInfo - en-US
IsNeutralCulture : False
CultureTypes : SpecificCultures, InstalledWin32Cultures
NumberFormat : System.Globalization.NumberFormatInfo
DateTimeFormat : System.Globalization.DateTimeFormatInfo
Calendar : System.Globalization.GregorianCalendar
OptionalCalendars : {System.Globalization.GregorianCalendar}
UseUserOverride : True
IsReadOnly : True
Hex: 0409
Dec: 1033
Country Code: en-US
Source:
OS Language Values-Codes (autoitscript.com)
Hello,
We're still investigating and comparing notes between users, as we are still unable to replicate this internally.
So far, most factors seems to point at a strange conflict happening when a combination of Language-Keyboard does not properly match. (such as having Language as swedish (sv-SE) and keyboard to english (en-US)). Can you confirm if your OS was originally installed in en-US as well? (You can also access 2 other culture information by using Get-Culture and Get-UICulture)
We will take extra measures with the 3rd party as well as our own investigation with this new information you've brought us. Hopefully this can help us replicate and pin-point the problem.
Regards,
Jafran Majeau
Hi swissbuechi,
Are you able to test by settings the system environment variable `DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY` to `0` ? This should allow any culture, valid or not. If this fixes your issue, we have a way of setting it globally in our application, and you wouldn't need the environment variable anymore. We would then publish this more permanent fix in the next release.
Regards,
Philippe Paré
Hi again swissbuechi,
I made a small mistake telling you to set the variable to "0". You should set it to "false" instead (according to Microsoft's documentation). I wouldn't be surprised if "0" worked, but if it doesn't, "false" should.
Regards,
Philippe Paré
Hi Philippe Paré
Thank you very much for the fast reply.
I've configured the system env variable to false and rebooted my system.
Sadly, the error still persists.
Env:
PowerShell 7.4.2 Loading personal and system profiles took 2950ms. PS C:\Users\user> $Env:DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY false
@Jafran Majeau
The system uses a Swiss German keyboard layout.KLID: 00000807
Everything else is set to en-US.
PS C:\Users\user> Add-Type -AssemblyName System.Windows.Forms PS C:\Users\user> [System.Windows.Forms.InputLanguage]::CurrentInputLanguage Culture Handle LayoutName ------- ------ ---------- en-US 67699721 US PS C:\Users\user> Get-Culture LCID Name DisplayName ---- ---- ----------- 1033 en-US English (United States) PS C:\Users\user> Get-UICulture LCID Name DisplayName ---- ---- ----------- 1033 en-US English (United States)
Hello,
We've added new information to be generated from error reports that should provide us with the culture information we're looking for. Hopefully with this, we'll be able to get a fix going.
This should be taking effect for the upcoming versions 2024.2.4 and 2024.1.30.
You can use the Diagnostic window (located in the Help section) and click the Send button to send us the updated information (or the usual Send Error report when the actual error prompts).
Regards,
Jafran Majeau
Thank you very much.
I will upgrade to 2024.1.30 as soon as it's available.
@Jafran Majeau @Philippe Paré
Today we upgraded to RDM 2024.2.16 and the issue is gone.
Thank you a lot!
Hi swissbuechi,
Glad we could resolve your issue. Feel free to reach out if you need anything else.
Regards,
Philippe Paré