microsoft / microsoft/PowerToys
PowerToys 0.99.1 update hangs at "Processing: PowerToys MSI" when Explorer holds FileLocksmith extension
- Dominant language
- C
- Stars
- 139k
- Forks
- 8.6k
- PR merge metrics
- PR metrics pending
Description
### Microsoft PowerToys version
0.99.1 update from 0.97.2 per-user install
### Installation method
PowerToys self-update / per-user setup (`powertoysusersetup-0.99.1-x64.exe /passive /norestart`)
### Running as admin
No
### Area(s) with issue
Installer
It hangs here forever:
### Steps to reproduce
1. Start from an existing per-user PowerToys 0.97.2 install.
2. Let PowerToys update to 0.99.1, or launch the downloaded per-user setup through the updater.
3. The setup window reaches **Setup Progress** with `Processing: PowerToys MSI` and then stops progressing.
Observed twice on consecutive mornings. A screenshot shows the `PowerToys (Preview) x64 Setup` dialog stuck at `Processing: PowerToys MSI` with the progress bar around 60% and only **Cancel** available.
### Actual Behavior
The updater/setup appears hung while processing the MSI. The current attempt has been stuck for more than 20 minutes:
```text
2026-05-01 08:27:38 PowerToys.Update.exe started
2026-05-01 08:27:46 powertoysusersetup-0.99.1-x64.exe /passive /norestart started
2026-05-01 08:27:50 MsiInstaller Event ID 1040: Beginning Windows Installer transaction for PowerToysUserSetup-0.99.1-x64.msi
2026-05-01 08:50:24 PowerToys.Update.exe, powertoysusersetup-0.99.1-x64.exe, and two msiexec.exe processes still active
```
No matching MsiInstaller transaction end event was present for the current attempt when diagnostics were collected.
The current MSI log has not advanced past `InstallValidate`:
```text
Action start 8:27:52: InstallValidate.
...
MSI (s) (...) [08:28:17:305]: PROPERTY CHANGE: Modifying CostingComplete property. Its current value is '0'. Its new value: '1'.
MSI (s) (...) [08:28:17:305]: Note: 1: 2727 2:
```
The previous attempt on 2026-04-30 eventually timed out and failed:
```text
MSI (s) (...) [08:16:31:074]: RunEngine wait timed out
Installer is no longer responding.
Info 1603. The file \PowerToys\WinUI3Apps\PowerToys.FileLocksmithExt.dll is being held in use by the following process: Name: explorer, Id: , Window Title: '(not determined yet)'. Close that application and retry.
MSI (s) (...) [08:26:53:340]: I/O on thread could not be cancelled. Error: 1168
Action ended 8:26:53: InstallValidate. Return value 2.
Action ended 8:26:53: INSTALL. Return value 2.
MSI (s) (...) [08:26:53:490]: Product: PowerToys (Preview) -- Installation failed.
Windows Installer installed the product. Product Name: PowerToys (Preview). Product Version: 0.99.1. Product Language: 1033. Manufacturer: Microsoft Corporation. Installation success or error status: 1602.
MSI (s) (...) [08:26:53:506]: MainEngineThread is returning 1602
```
Bootstrapper diagnostics from the current run:
```text
DetectedPowerToysUserVersion = 0.97.2
DetectedPowerToysVersion = 0.0.0.0
DetectedWindowsBuildNumber = 26200
Detected related bundle: version 0.97.2, scope PerUser
Detected related package: version 0.97.2, operation: MajorUpgrade
Planned package: PowerToysUserSetup_0.99.1_x64.msi, execute: Install, rollback: Uninstall
Applying execute package: TerminatePowerToys ... result: 0x0
Applying execute package: PowerToysUserSetup_0.99.1_x64.msi ... MSIRESTARTMANAGERCONTROL="Disable" ... REBOOT=ReallySuppress
```
Installed package state looked partially updated afterward:
```text
PowerToys (Preview) 0.97.2
PowerToys (Preview) x64 0.99.1
PowerToys (Preview) x64 0.97.2
PowerToys MSIX context menu packages still showed 0.97.2
```
### Expected Behavior
The updater should not hang indefinitely when Explorer has a PowerToys shell extension loaded. It should either close/restart the relevant Explorer integration, prompt clearly, fail quickly with actionable guidance, or otherwise recover without leaving mixed 0.97.2/0.99.1 install state.
### OS
Windows 11 Enterprise 10.0.26200, x64
### Other Software
Diagnostics were redacted before filing: user profile path, computer name, SID, and exact local temp paths were removed/replaced with placeholders.
Contributor guide
Research direction
Start with the PowerToys.Update.exe and powertoysusersetup-0.99.1-x64.exe flow, then inspect the MSI log around InstallValidate and the bootstrapper diagnostics for the PowerToys.FileLocksmithExt.dll lock held by Explorer. Reproduce the per-user 0.97.2-to-0.99.1 update and verify that it completes or fails quickly with actionable guidance without leaving mixed installed versions.
Written by the indexing model from the issue text.
Assessment
- Domain
- release
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100