'SQL Server 2019 > Agent Job execute > Error 'Culture is not supported'

Within the Job History logs - Error on Step 1 : "Culture is not supported. Parameter name: culture 3072 (0x0c00) is an invalid culture identifier."

Prior to this issue, I changed the server (MS SQL Server 2019) Computer name After install of SQL Server 2019 plus database and jobs configured.

Occurs on all invokes of jobs.

Tried full uninstall and reinstall of SQL Server 2019, but issue persists.



Solution 1:[1]

After a day of evaluation, finally found a solution - with help from similar type of reported issue in SSIS, but not quite the same solution. SSIS Error while deploying package The locale identifier (LCID) is not supported by SQL Server

The job unit is initially invoked by logon account {NT Service\SQLAgent$}, but no issue was found with this logon account. The actually job steps (maintenance plan in my case), uses an OS user account (Administrator in my case), and its this user account culture that became corrupted via the Computer name change.

To fix the user account :

  1. Find the SID of the user (user assigned to the job step that failed) CMD(with admin privilege): wmic useraccount where name='{user name}' get sid

  2. using the SID from step 1, now find that user in RegEdit Register Editor -> HKEY_USERS -> [SID of User] -> Control Panel -> International and change keys "Locale" and "LocaleName", example: o Invalid: Locale = 00000C00 o Valid: Locale = 00000409 (With LocalName= en-US)

  3. Restart server

  4. Job will still fail with same error at this point. Final fix > Job step > maintenance plan needs to be recreated, and then it will use the valid culture. For some reason SQL Server 2019 hardcodes the user account culture to the maintenance plan when the plan is created, and does not update the culture even if the user account - culture is changed.

Solution 2:[2]

I encountered the same error when attempting to run SQL Server Maintenance Plans using the SQL Server Agent.

My local user had a different locale name to the server locale name of the SQL Server Agent Account.

My fix was to delete the Maintenance Plans created by my local account and re-create the maintenance plans on the server using the SA account.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 kineticman