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

  1. Pre-filter the uninstall list to hide/exclude known non-removable Windows components, or mark them as 'cannot be uninstalled'.
  2. For AppX packages, check the package's NonRemovable flag (Get-AppxPackageManifest) before offering uninstall.
  3. 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

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


AI-assisted analysis of BCUninstaller/Bulk-Crap-Uninstaller@608321de98 (2026-08-13). Data as JSON: /api/errors/896b8a5c610b9f8d. Report an issue: GitHub.