Fix it now
Setup ran out of room on the system volume. All three 0x80070070 pairs say the same thing at different points in the run, and both companion codes are disk space checks too. You need real free space, not a tidied recycle bin.
Dism /Online /Cleanup-Image /StartComponentCleanup
cleanmgr /sageset:1
powercfg /h off
- Aim at Microsoft’s published figures: an upgrade wants 16 GB free for a 32-bit installation and 20 GB for a 64-bit one, and Windows 11 requires 64 GB or greater available disk space.
- Component store cleanup is the biggest single win on a machine that has been patched for years, and it is safe to run while Windows is up.
- Turn off hibernation with
powercfg /h offto reclaim the hibernation file, and turn it back on afterwards if you use it. - Reduce shadow copy storage if it has grown: check with
vssadmin list shadowstorage, then resize withvssadmin resize shadowstorage. - If you still cannot free enough, attach external storage for setup to use. Microsoft asks for at least 8 GB, recommends 16 GB, and it must be formatted NTFS.
Do not free space by deleting the recovery partition or by emptying folders under Windows by hand. Both create worse problems than the one you are solving.
If the upgrade completes you can stop here. If not, the next section explains why setup needs so much more room than the finished installation does.
Why it happens
An upgrade briefly holds two operating systems. Setup downloads or reads the new image, expands it onto the system volume, keeps the old installation intact so it can roll back, and writes migration state alongside both. Peak usage is much higher than the space the finished installation occupies, and it arrives part way through rather than at the start, which is why a machine that had plenty of room when you pressed the button can fail an hour later.
0x80070070 is the plain out-of-space error, and the three extend codes here just say where setup was when it noticed. That is worth knowing because it explains why freeing a little space and retrying often produces the same failure at a slightly later point: you moved the moment of exhaustion rather than avoiding it.
The two companion codes are disk space checks in their own right, and one of them is routinely misread. 0xC1900211 is MOSETUP_E_DOWNLOAD_UNPACK_DISKSPACE_BLOCK: the system does not pass the disk space requirements to download and unpack media. 0xC1900123 is MOSETUP_E_INSTALLDISKSPACE_TIMEOUT: the install disk space issues were not resolved within the required time limit. The second one appears when setup asked you to free space, waited, and gave up.
The component store has never been cleaned
You have this one if An older machine that has been patched for years and has a large WinSxS folder.
- Run
Dism.exe /online /Cleanup-Image /StartComponentCleanupand let it finish. - Check what it reclaimed with
Dism.exe /online /Cleanup-Image /AnalyzeComponentStore. - Retry the upgrade before doing anything more drastic.
/ResetBase reclaims more by removing all superseded components, but after it you cannot uninstall installed updates. Use it only if you are sure you will not need to roll one back.
Large reserved files nobody thinks about
You have this one if The volume is nearly full and the visible user data does not account for it.
- Turn hibernation off with
powercfg /h offto removehiberfil.sys, and turn it back on later if you need it. - Check shadow copy storage with
vssadmin list shadowstorageand resize it if it has taken a large share of the volume. - Run disk cleanup as administrator so it offers the system files, including previous Windows installations.
- Move large user data off the system volume rather than deleting it under time pressure.
A previous attempt left its staging behind
You have this one if C:\$Windows.~BT and C:\$Windows.~WS are present and large after a failed run.
- After a rollback, and once you have taken any logs you need, delete both folders.
- Use disk cleanup’s system files view, which offers previous Windows installations as a category.
- Retry the upgrade with the volume genuinely clear.
Take the Panther and Rollback folders out first if you have not diagnosed the previous failure. Deleting them costs you the only evidence of what went wrong.
The volume is simply too small for the machine’s role
You have this one if Every cleanup succeeds, the volume is still tight, and the same thing will happen at the next feature update.
- Attach external storage for setup to use during the run: at least 8 GB, 16 GB recommended, formatted NTFS.
- Extend the system volume if there is unallocated space or a shrinkable neighbour on the same disk.
- Where neither is possible, plan a larger disk. A machine that cannot hold an upgrade will not hold the next one either.
Full reference
The figures Microsoft publishes
| Requirement | Published figure |
|---|---|
| Free space to run an upgrade, 32-bit | 16 GB |
| Free space to run an upgrade, 64-bit | 20 GB |
| Windows 11 available disk space requirement | 64 GB or greater |
| External drive for setup to use | At least 8 GB, 16 GB recommended, formatted NTFS |
Treat those as floors rather than targets. They are what setup checks against, not what makes an upgrade comfortable, and a machine sitting exactly on the line is the one that fails at the point where rollback data and migration state are both on disk at once.
Where the space actually goes
| Consumer | How to see it | How to reduce it |
|---|---|---|
Component store (WinSxS) |
Dism /online /Cleanup-Image /AnalyzeComponentStore |
/StartComponentCleanup, optionally /ResetBase |
| Hibernation file | Its size matches installed memory | powercfg /h off |
| Shadow copy storage | vssadmin list shadowstorage |
vssadmin resize shadowstorage |
Previous installation (Windows.old) |
Disk cleanup, system files view | Remove through disk cleanup, not by hand |
| Failed upgrade staging | $Windows.~BT and $Windows.~WS |
Delete after a rollback, once logs are saved |
| Update download cache | %WinDir%\SoftwareDistribution\Download |
Stop the update service, clear it, start the service |
/ResetBase removes all superseded versions of every component in the component store. Once it has run, installed updates can no longer be uninstalled.
Using external storage properly
Setup can use an attached drive for its temporary needs, which is the sanctioned way through a volume that cannot be made big enough. Format it NTFS, give it more room than the minimum, and leave it attached for the whole run including the restarts. Do not point setup at a network location or at a drive that sleeps.
When the space is there and it still fails
- Confirm you are looking at the right volume. On a machine with several partitions, the one that matters is the one holding Windows.
- Check for a quota or a policy limiting what setup can write, particularly on managed machines.
- Look for a folder redirection or a junction pointing part of the system volume somewhere small.
- Read
$Windows.~BT\Sources\Panther\setuperr.logand confirm the error really is the space one rather than a different failure being reported alongside it. - If 0xC1900123 appears, note what it means: setup asked for space and timed out waiting. Free the space first, then start the run again rather than responding to the prompt during it.
Stopping it happening again
A machine that has just scraped through an upgrade will be in the same position at the next one. Schedule component store cleanup, keep an eye on shadow copy storage, and if the system volume is genuinely undersized for the work the machine does, treat the disk as the thing to fix rather than repeating the cleanup every six months.
When a licence is the actual fix
Free space is not something you buy a licence for, and no edition of Windows needs less of it. The purchase that actually helps here is storage: a larger disk in a machine whose system volume cannot hold an upgrade, or an external drive for setup to use during the run. The licence question only arises at the far end, if the machine’s disk is being replaced and you are rebuilding rather than upgrading. Arco supplies Windows 11 Pro upgrade licences for that case, and will tell you when a cleanup command and a spare USB drive are the whole answer.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
0x80070070 - 0x50011 |
The computer does not have enough free space available to install the upgrade | Microsoft Learn |
0x80070070 - 0x50012 |
The same lack of free space, reported at another point in the run | Microsoft Learn |
0x80070070 - 0x60000 |
The same lack of free space, reported from a later stage | Microsoft Learn |
0xC1900211 |
MOSETUP_E_DOWNLOAD_UNPACK_DISKSPACE_BLOCK: the system does not pass the disk space requirements to download and unpack media | Microsoft Learn |
0xC1900123 |
MOSETUP_E_INSTALLDISKSPACE_TIMEOUT: the install disk space issues were not resolved within the required time limit | Microsoft Learn |
Confirm the fix worked
- The system volume shows free space above the published figure for the upgrade you are running.
Dism /online /Cleanup-Image /AnalyzeComponentStorereports that cleanup is not recommended.- The upgrade completes and the machine boots into the new build.
- After the upgrade, previous installation files have been removed through disk cleanup rather than left in place.
Questions people ask about this
I freed several gigabytes and it failed again at a later point.
That is the signature of this failure. Setup needs its peak, not its starting figure, and freeing a little only moves the moment it runs out. Work to the published requirement rather than to whatever made the first error go away, and remember the rollback data sits on the same volume as the new image.
Is it safe to delete Windows.old?
Yes, through disk cleanup’s system files view, and it is one of the larger wins available. What it costs you is the ability to go back to the previous build, so do it once you are satisfied the new one is working rather than the same afternoon. Do not delete the folder by hand: its permissions are unusual and removing it that way tends to leave fragments behind.
What does 0xC1900123 actually mean?
It is MOSETUP_E_INSTALLDISKSPACE_TIMEOUT: the install disk space issues were not resolved within the required time limit. In other words setup noticed it was short, asked, waited, and eventually stopped waiting. It is a disk space code, not an unrelated setup failure, which is worth knowing because it is often listed as though it were one.
Can I use a network share instead of a USB drive?
No. Setup needs storage that stays attached and available through the restarts, and a network location is neither. Use an NTFS-formatted external drive with room to spare, and leave it connected for the whole run.
