Bug report
Bug description:
# Add a code block here, if required
```Python 3.15.0a8 (64-bit) installed on a non-system drive (D:\) cannot be uninstalled through
Windows Settings → Apps. The uninstaller enters an infinite error loop, leaves orphaned registry
entries across multiple hives, and requires extensive manual registry cleanup to fully remove.
This issue does not appear to affect installations on C:\.
Python Version3.15.0a8 (64-bit), OSWindows 11 (64-bit), Install DriveD:\ (non-system, secondary drive), Install PathD:\Python, Installer TypeWiX Burn Bundle (python-3.15.0a8-amd64.exe), Co-existing PythonPython 3.14.4 at D:\Python\3.14\, User PrivilegeAdministrator
Steps to Reproduce
Download python-3.15.0a8-amd64.exe from python.org
Install Python 3.15.0a8 to a non-system drive (e.g., D:\Python) as Administrator
Open Windows Settings → Apps → Installed Apps
Search for "Python 3.15" and click Uninstall
Observe the uninstaller launching and immediately failing
Errors Encountered
Error 1 — Infinite Permission Loop (Error 5)
Could not set file security for file 'D:\Config.Msi\90304d.rbf'. Error: 5.
Verify that you have sufficient privileges to modify the security permissions for this file.
Error 2 — MSI Engine Lock (0x80070652)
0x80070652 - Another installation is already in progress.
Complete that installation before proceeding with this install.
Impact
Python 3.15.0a8 cannot be removed through any standard Windows uninstall method
The broken uninstaller auto-relaunches even after being forcefully terminated
The issue persists across reboots
Manual registry cleanup across 5 separate locations is required (documented below)
Root Cause Analysis
Python 3.15.0a8 uses a two-layer installation architecture:
Layer 1 — WiX Burn Bundle (Top-Level)
Registered in: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Shows as single "Python 3.15.0a8 (64-bit)" entry in Windows Apps list
Layer 2 — Individual MSI Components (6 packages)
Registered in: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Core Interpreter, Standard Library, Executables,
Documentation, Test Suite, Development Libraries
When uninstallation fails, orphaned entries are left across five separate registry locations: ( Refer attached)
Suggested Fix
MSI installer should handle Config.Msi creation on non-system drives with proper
ACL inheritance matching the system drive behavior
WiX Burn bootstrapper should ensure HKCU bundle entry is removed as part of
the uninstall chain even when individual MSI components fail
Uninstaller should implement proper rollback and session cleanup on Error 5
instead of looping indefinitely
Windows Installer UserData entries should be cleaned as part of the standard
uninstall process
[Python3.15.0a8_MSI Errors on Non C Drive.pdf](https://github.com/user-attachments/files/27099658/Python3.15.0a8_MSI.Errors.on.Non.C.Drive.pdf)
### CPython versions tested on:
3.15
### Operating systems tested on:
Windows
Bug report
Bug description: