When This Error Shows Up
You're on a Windows Server 2019 or 2022 box trying to install a language pack. Maybe you're setting up a multi-language terminal server for a remote team, or you just need Japanese input on a US-English system. You run lpksetup.exe or try adding a language through Settings, and bam — error code 0X00003B04, "Locale installation failed."
I had a client last month who needed Spanish language packs on a Server 2019 RDS host for a call center rollout. Every attempt failed with this exact code. Took a bit to find the root cause: a corrupt MUI cache from a previous failed update.
Root Cause: Blown MUI Cache
The MUI (Multilingual User Interface) cache stores temporary files for language pack installation. When it gets corrupted — bad disk write, interrupted update, or permission issue — Windows can't read the locale metadata properly. Instead of skipping the cache, it throws the 0X00003B04 and stops dead.
Another common trigger: an incomplete Windows update that left junk in C:\Windows\System32\MUIObtain or C:\Windows\System32\MUI. The locale name string in the cache no longer matches what the installer expects, so it flags it as invalid.
Step-by-Step Fix
Don't waste time reinstalling the language pack or running SFC — been there, it doesn't fix the cache corruption. Here's what works.
Step 1: Clear the MUI Cache
- Open an elevated Command Prompt (right-click Run as Administrator).
- Stop the MUI-related services:
net stop msiserver(might be needed to unlock files). Then run:
takeown /f C:\Windows\System32\MUIObtain /r /d y icacls C:\Windows\System32\MUIObtain /grant Administrators:F /t /q del /f /s /q C:\Windows\System32\MUIObtain\*.* - Also clear the MUI folder:
takeown /f C:\Windows\System32\MUI /r /d y icacls C:\Windows\System32\MUI /grant Administrators:F /t /q del /f /s /q C:\Windows\System32\MUI\*.* - Restart the server — not optional. This frees locks on cache files.
Step 2: Run DISM to Clean Up
After reboot, run this in an admin command prompt:
DISM /Online /Cleanup-Image /RestoreHealth
This fixes any component store corruption that might have caused the cache issue in the first place. Wait for it to finish (could take 15-20 minutes).
Step 3: Reinstall the Language Pack
Now go back and install the language pack. Use the official method for your Windows version:
- Windows 10/11: Settings > Time & Language > Language > Add a language.
- Windows Server: Launch
lpksetup.exe(it's inC:\Windows\System32). Choose Install display languages, browse to your .cab or .reg file.
If you're using a .cab file, make sure it matches your OS architecture and build. Mixing versions (like a 22H2 pack on 21H2) will fail.
Step 4: Verify Installation
Check with PowerShell:
Get-WinUserLanguageList
You should see the newly added locale in the list. For Server, also check Get-WindowsPackage -Online for the language pack package.
Still Failing? Check These
If the error still pops, odds are the language pack itself is bad or the system has deeper corruption.
- Check disk space — low space on
C:can cause cache writes to fail silently. Clear temp files or expand the partition. - Verify the pack signature — run
certutil -hashfile languagepack.cab SHA1against the known good hash from Microsoft's catalog. - Check for pending updates — run
dism /online /cleanup-image /startcomponentcleanup. Sometimes a stuck update blocks locale changes. - Last resort: Do an in-place upgrade repair using the same Windows version ISO. This replaces the MUI subsystem without losing data. I've only had to do this twice, but it works when nothing else does.
The 0X00003B04 is annoying but fixable. Clear the cache, run DISM, and reinstall. Nine times out of ten, that's all it takes.