In the past I came across two strange errors when processing a cube:

  • Locale 8129 not supported – this was just a warning, processing succeeded. Still, it didn’t radiate confidence. Something was going to go wrong at some point
  • A device attached to the system is not functioning – this was an error, and processing didn’t succeed.

Both seem to be related to the same underlying problem : the locale of the account used to process the data into the cube..


  • Find out which account is running the SQLServer instance
  • Find out what the SID is of this account
  • Lookup the locale in the registry for this SID
  • Restart SQLServer
  • Process without warnings or errors related to locale

Find account that runs SQLServer instance

NT Service\MSSQL$SQL is the account created by the installer of named instance SQL of SQLServer. This is the account that has an incorrect locale set.

Find SID

Install PSTools (which you can download here: ) and use psgetsid to retrieve the SID of the account used to run the SQLServer service noted in above step.

Update locale in registry

Now that we know the SID, we’ll find it in the registry (use regedit.exe) to update the locale that is set for it. In this example we’ll update the locale to 1033 en-US, the default, but you can choose as you need for the list of valid locales. The list can be found here:

Make sure to update in the Key Computer\HKEY_USERS\<SID-from-previous-step>\Control Panel\International:

  • the Value Locale to the HEX value of the locale.
    E.g. if you want to use 1033 (Default English Locale ID), the HEX value is 00000409, with the 0 padding in front to 8 digits.
  • the Value LocaleName to the name, in this case en-US, matching the 1033.


Restart the server where SQLServer is running on, for the changes to become active. The cube now processes fine.

Read more

If you’re interested in SQLServer article I make, make sure to read others like: