Note that there are frequently SEVERAL recovery partitions (one for each version of Windows for which you may want to rollback to, plus OEM recovery partitions).
But some disk tools are confusing them or changing their ID so that OEM recovery and Windows recovery partitions may be mixed up).
Anyway, the WinRE recovery partition is noramlly installed by a tool named "ReAgent" in Windows 10, which does not work and hangs frequently when it runs within the "SAFE_OS" environment (running the Windows 10 installer, including when it runs authomatically from Windows update to install a new build of Windows 10), and that also fails when you want to use ReAgent manually from normal mode: ReAgent incorrectly computes the storage space it needs to install the recovery environment. You may finally see that Windows 10 has taken space on your disk to allocate one or several recovery partitions, and then updated the BCD store to make them as bootable, even though these partitions were not prepared (not formatted in fact: you see them as "RAW" partitions instead of "NTFS" partitions). On each following reboot, a new additional partition will be created again (taking space from the main partition, but ignoring the space already allocated for an earlier failed attempt to format the incorrectly setup recovery partition).
You'll then need to drop those incorrect partitions, reclaim their space for use by the normal Windows partition (on my disk I have seen the repeated failed attempts to install the recovery leaving several gigabytes of storage : a 300MB partition, then another 450 MB partition, then another 600 MB partition, each time requiring 150MB more than with the previouis attempt! Each time WinRe failed in fact with errors saying that the size was not sufficient for use, even if Windows 10 will never need more than 450MB. On my disk, the many attempts allocated more than 60 GB on my SSD for these partitions, and I finally ran out of space on my 256GB SSD (and could no longer boot Windows or even have it rollback).
Note that when the windows 10 installer rollbacks, it leaves these partitions as is, even if they are now unformatted "RAW" partitions. You manually need to delete these unsued partitions.
You'll also need to check the content of the BCD store; from the adminsitrator command line, run:
BCDEDIT /enum all
You may see new root entries created for non existant partitions/volumes
Check also the partions from the command line, because the UI "Disk Management" control panel does not display everything (and sometimes refuses to let you delete those incorrect partitions if their ID is set to some "protected" state.
DISKPART
has an additional option that allows you to FORCE the deletion of these partitions that you can't drop from the Disk Management control panel:
- to see all existing volumes and see on which driver letters they are mounted, and which filesystem type they use (or if they are unformatted "RAW" partitions)
LIST VOL
- select your Windows partition
SELECT VOLUME n
LIST PART
- look that the correct partition number for the system disk, locate the small UEFI/boot FAT32 partition, locate the eventual OEM recovery partition
- then you may need to delete undesirable partitions on the disk (incorrectly installed by the windows 10 installer due to the bug in ReAgent) to recover the space they needlessly take.
For some partitionn you may not use "DELETE PART" to delete the selected partition (and the volume on it)! These same partitions cannot be deleted as well in the Disk Management control panel (the options are grayed). But you may be able to do it from the command line with an additional parameter !
DELETE PART OVERRIDE
But before extending your Windows partition again, leave the free space created by the deleted partitions: the Windows installer will not need to adjust again the size of the Windows partition and may now be able to allocate the recovery paritition directly, without having to alter the C: Windows partition.
Correcting the entries in the BCD store is much more complicate (the command line syntax to do it is horribly complicated!)
Most users are compeltely unable to use the BCDEDIT and DISKPART tools themselves! They need a technical support (this is very bad because it is the Windows 10 installer that corrupted automatically their partition tables and BCD store).
Windows 10 installers are really TOO MUCH automated (abuse of unattended automatic installation without any prior informatio nof what it will attempt to do). Everything that changes the BCD store (incorrectly reading the BIOS info and mixing UEFI and MBR-compatibility info) or partition scheme should not be done in unattended way, in fact all this could be done BEFORE rebooting into SAFE_OS mode, with some interaction to confirm what will be done, and with proper logging.
But Windows 10 installers in SAFE_OS mode are just trying to "guess" what would be the best configuration and too frequently their guess is simply wrong (it makes lots of confusions between drive numbers, volume numbers, partition numbers on specific drives, and sometimes it also mixes the drive letters or change their mapping (unique volume identifiers are simply ignored, this is very bad and completely opposed to what Microsoft recommends and documents ! Microsoft still ignores its own specifications that were discussed with third-party developers and OEMs)
Failure on Windows 10 installation are really a nightmare to diagnose.
Even the Microsoft online assistance does not understand the issues! And they even ignore the existing Windows diagnozing tools such as options of DISKPART or just the basic syntax of BCDEDIT! Call them, may be they'll start a support session with your PC, but you'll help them more than they'll help you (because users frequently know various things about Windows better than the official Microsoft support team !). But may be they'll help you locate a few things that you've forgotten to check.
Beware! They may tell you to install the INCORRECT version of Windows, which will cause ALL your user data to be erased instead of being migrated ! The microsoft support just looks at what is shown in Winver dialog, but does not look at the real version that is used (for example they assume the Windows version is localized in the same language as the one you use, and still ignore that youi may use a MUI language setting on top of a US English installation).
The Windows installer also makes various false assumptions about what is on your system. the "ReAgent" a component is the worst of all, it is almost undocumented, does not explain what it tries to do, does not log its actions, does not log its own errors, and offers almost no diagnostic. All I can say is that it incorrectly computes the space needed for installing the recovery environment and does not explain why it would need more than 300MB for it (I think that "ReAgent" is incorrectly reading some data in the MSR partition, or fails in some cases where there are other disks mounted on RAID, USB, or mobile devices, or on connected printers, or Flash cards, and it may be adding up space actually used for unrelated data on other disks, that will NEVER be part of the recovery partition itself, or it tries to guess where is the WinRE source and finds some random directory somewhere which is actually not the source of the WinRE, and then it adds spae already allocated for a few other recovery partitions not meant for that version of Windows)
My view of how Microsoft official support reacted (it learned much more from me than they helps me, and they did not understand waht I was showing them with DISKPART and BCDEDIT...), is that Microsoft actually does not really know how Windows really works (because there's an internal lack of training for their personnel, and because many parts of Windows were in fact designed by a small team no logner working for Microsoft, and now Microsoft needs help from third-parties to guess how all this should work)!
This is problematic: Windows was proprietary, but internally badly documented, and now Microsoft does not really know how to manage the billions of lines of source code made by lot of third parties, without real review! Windows will then be condamned to slow death as it has become unmainatainable and unsupported by Microsoft itself (and even third parties have huge difficulties to locate problems because of lack of internal documentation: this has never been worse since Microsoft pushed for unattended installations without asking users anything).
May be it's time for Microsoft to think about creaing their sold softwares and services on another OS, actually supported by a larger community! Microsoft should start creating its own Linux-based distribution (and just rebuild an UI layer on top of it: Microsoft should help developping "Wine" for Linux).
Microsoft has already said that Windows 10 would be the last commercial version of Windows. I predict that it will start dying in about 10 years, and that the next OS for supporting apps developed for Windows will be in fact Linux (and that Edge will be ported to Linux: already, Office 365 and Azure are supporting Linux and third party browsers: Windows and browsers will no longer be strategic for selling Microsoft solutions, Windows and Internet Explorer/Edge are just costing more to Microsoft than what theyt generate in revenues and Microsoft is unable to sustain the technical support for them without paying third-parties!)