BCUninstaller/Bulk-Crap-Uninstaller · warning · Exception
0x80070032 - This app is part of Windows and cannot be unins
Error message
0x80070032 - This app is part of Windows and cannot be uninstalled on a per-user basis.
What it means
The exit-code switch maps exitVar == -2147024846 (0x80070032) to a thrown Exception: 'This app is part of Windows and cannot be uninstalled on a per-user basis.' HRESULT 0x80070032 wraps Win32 ERROR_NOT_SUPPORTED (50); the OS rejected the per-user removal of an inbox/WINDOWS-component app.
Source
Thrown at source/UninstallTools/Uninstaller/BulkUninstallEntry.cs:445
The application terminated as a result of a CTRL+C.
Indicates that the application has been terminated either by user's
keyboard input CTRL+C or CTRL+Break or closing command prompt window. */
_skipLevel = SkipCurrentLevel.Terminate;
}
else
{
switch (exitVar)
{
case 2:
throw new Exception("The system cannot find the file specified. Indicates that the file can not be found in specified location.");
case 3:
throw new Exception("The system cannot find the path specified. Indicates that the specified path can not be found.");
case 5:
throw new Exception("Access is denied. Indicates that user has no access right to specified resource.");
case 9009:
throw new Exception("Program is not recognized as an internal or external command, operable program or batch file.");
case -2147024846:
throw new Exception("0x80070032 - This app is part of Windows and cannot be uninstalled on a per-user basis.");
default:
if (options.RetryFailedQuiet || (UninstallerEntry.UninstallerKind == UninstallerType.Nsis && !options.PreferQuiet))
retry = true;
throw new IOException(Localisation.UninstallError_UninstallerReturnedCode + exitVar);
}
}
}
}
}
}
catch (Exception ex)
{
error = ex;
Trace.WriteLine(@$"Exception when uninstalling {UninstallerEntry.DisplayName}: {ex}");
}
finally
{
View on GitHub (pinned to 608321de98)
Solutions
- Pre-filter the uninstall list to hide/exclude known non-removable Windows components, or mark them as 'cannot be uninstalled'.
- For AppX packages, check the package's NonRemovable flag (Get-AppxPackageManifest) before offering uninstall.
- Surface a user-facing message that this component is part of Windows and must be removed via OS settings (if at all).
Example fix
// before
manager.RunUninstaller(entry, options);
// after
if (entry.UninstallerKind == UninstallerType.StoreApp && IsNonRemovable(entry))
{
entry.MarkNotUninstallable("Part of Windows; remove via OS settings.");
return;
}
manager.RunUninstaller(entry, options); Defensive patterns
Strategy: validation
Validate before calling
if (entry.UninstallerKind == UninstallerType.StoreApp && IsNonRemovablePackage(entry))
{
entry.MarkNotUninstallable("Part of Windows; remove via OS settings.");
return;
}
manager.RunUninstaller(entry, options); Type guard
null
Try / catch
try { manager.RunUninstaller(entry, options); }
catch (Exception ex) when (ExitCodeOf(ex) == -2147024846)
{
entry.MarkNotUninstallable("Part of Windows; cannot be uninstalled per-user.");
} Prevention
- Pre-filter known non-removable Windows components from the uninstall list.
- Check AppX package NonRemovable flag before offering uninstall.
- Direct users to Windows Settings for OS-managed components.
When it happens
Trigger: Attempting to uninstall a Windows store/inbox app or system component that the OS refuses to remove for the current user — typically an AppX/UWP package marked non-removable or a Windows optional feature that cannot be uninstalled per-user.
Common situations: User selects an inbox Windows app (e.g. Cortana, Edge, a system AppX) in the bulk list; the uninstaller exits 0x80070032 because Remove-AppxPackage would also be refused for that package.
Related errors
- The system cannot find the file specified. Indicates that th
- The system cannot find the path specified. Indicates that th
- Access is denied. Indicates that user has no access right to
- Program is not recognized as an internal or external command
- Uninstaller returned error code: {exitVar}
AI-assisted analysis of BCUninstaller/Bulk-Crap-Uninstaller@608321de98 (2026-08-13).
Data as JSON: /api/errors/896b8a5c610b9f8d.
Report an issue: GitHub.