Windows System Errors
Cleanup Pending
0xC1900107Reviewed for reference consistency: August 11, 2026
a prior installation attempt left cleanup work that a restart must finish
What 0xC1900107 Means
The 0xC1900107 error on the Windows System Errors indicates cleanup pending — a prior installation attempt left cleanup work that a restart must finish. This typically occurs due to a previous setup or update attempt left its cleanup transaction unfinished.
Setup Platform refuses to start over an unfinished predecessor: 0xC1900107, MOSETUP_E_CLEANUP_PENDING, means a previous installation attempt left cleanup operations outstanding. Microsoft's table entry for 0xC1900107 reads 'A cleanup operation from a previous installation attempt is still pending. A system reboot is required.' The upgrade resolution guidance adds the fallback of Disk Cleanup for temporary and system files when a restart alone does not clear the state.
How to fix 0xC1900107
General informational guidance, not professional advice. Commands can affect your system or data — back up first and proceed at your own risk. FixerCode is an independent reference, not affiliated with any vendor mentioned.
Confirm pending servicing state before retrying
The presence of a pending-servicing file shows whether the outstanding cleanup still owes its reboot.
Test-Path "$env:windir\WinSxS\pending.xml"Check the update stack's reboot flag
The reboot-required registry key reveals maintenance the machine has not yet concluded.
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -ErrorAction SilentlyContinue
Technical Background
Setup operations are transactions with a defined end, and cleanup is that end. When an attempt is interrupted, the outstanding cleanup becomes state the system remembers, and the next setup run refuses to build on top of it. The code is therefore protective rather than diagnostic — it reports an unfinished predecessor, and the documented first remedy is simply the restart that lets the pending work conclude.
Persistence beyond a restart is the interesting case, and the guidance covers it: when restarting does not resolve the state, Disk Cleanup over temporary files and system files addresses the residue. The servicing analogue — pending actions in the component store that block further installations until completed or reverted — shows the same design from the store side: unfinished work is fenced off until it is finished.
Common Causes
- A previous setup or update attempt left its cleanup transaction unfinished
- The system was not restarted after an operation that scheduled cleanup work
- Servicing state carries pending actions awaiting the reboot phase
Typical Scenarios
- An upgrade retried after an interrupted attempt stops immediately with the cleanup-pending constant
- A servicing operation scheduled cleanup that the pending reboot never completed, blocking the next setup run
- Deployment tooling queues an upgrade while the machine still owes a restart from earlier maintenance
What to Know
Order matters here: the restart completes the outstanding transaction, and only a failure to clear after that points at residue worth cleaning through the documented utility.
Frequently Asked Questions
Common questions about Windows 0xC1900107 error
The modern-setup table defines 0xC1900107 as 'A cleanup operation from a previous installation attempt is still pending. A system reboot is required.'
Cleanup work is scheduled to complete during the reboot transition. The restart finishes the outstanding transaction, after which setup no longer sees a predecessor's unfinished state.
Both encode state-mismatch refusals. 0x8007139F is the general wrong-state constant, while 0xC1900107 names the specific setup-side condition of an unfinished prior attempt.
Related Error Codes
Related Errors From Other Categories
Similar error codes documented across different platforms and systems
You have unresolved file conflicts preventing Git from completing the current operation.
You tried to add a remote named 'origin', but one with that name already exists.
Git does not know which remote branch should receive your pushed commits.
You checked out a specific commit, detaching your working directory from the branch history.