Affected versions: Windows Server 2012 R2

📖 ~1 min read

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution — Primary Fix
  7. Solution — Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

Adding a language pack on Windows Server 2012 R2 leaves the system in pending reboot state even after multiple restarts.

Environment & Reproduction

Reproduces when the LP cab is added with DISM but a previous servicing transaction has not finalised.

Get-WindowsPackage -Online | Where PackageName -Like '*LanguagePack*'

Root Cause Analysis

A pending CBS transaction blocks language pack registration; CBS logs every reboot keep marking the package as pending.

Quick Triage

Check the RebootPending registry markers and CBS pending transactions.

Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindowsCurrentVersionComponent Based ServicingRebootPending' -ErrorAction SilentlyContinue
Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindowsCurrentVersionComponent Based ServicingPendingTransaction' -ErrorAction SilentlyContinue

Step-by-Step Diagnosis

Tail CBS log to find the stuck operation.

Get-Content C:WindowsLogsCBSCBS.log -Tail 200 | Select-String -Pattern 'pending|LanguagePack'
Illustrative mockup for windows-server-2012-r2 — terminal_or_powershell
Diagnostic output for packaging/langpack-pending-reboot — Illustrative mockup — Progressive Robot

Solution — Primary Fix

Repair the component store, force completion of pending transactions, and reboot once cleanly.

Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.

dism /online /cleanup-image /restorehealth
Reg Delete 'HKLMSOFTWAREMicrosoftWindowsCurrentVersionComponent Based ServicingPendingTransaction' /f
shutdown /r /t 0
Illustrative mockup for windows-server-2012-r2 — update_history
Resolution for packaging/langpack-pending-reboot — Illustrative mockup — Progressive Robot

Solution — Alternative Approaches

Remove the language pack, fully service the OS, then re-add the LP after reboot.

Remove-WindowsPackage -Online -PackageName 
shutdown /r /t 0
Add-WindowsPackage -Online -PackagePath D:langpacksfr-FR.cab

Verification & Acceptance Criteria

Get-WinSystemLocale and Get-WindowsPackage show the LP installed with no pending state.

Get-WindowsPackage -Online | Where State -EQ Installed | Where PackageName -Like '*LanguagePack*'

Rollback Plan

Restore system state backup if forcing the pending transaction harms other servicing operations.

wbadmin start systemstaterecovery -version:

Prevention & Hardening

Apply language packs only after monthly servicing completes and before pending reboots accumulate.

# In imaging: integrate LP into the base WIM

Related: DISM 0x800f0922, pending reboot loops, and CBS transaction failures.

Related tutorial: View the step-by-step tutorial for Windows Server 2012 R2.

View all Windows Server 2012 R2 tutorials on the Tutorials Hub →

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

Microsoft Learn documentation on language pack servicing and pending transactions.

Need Expert Help?

If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today — we respond within one business day.