BCUninstaller/Bulk-Crap-Uninstaller · error · IOException
Error while collecting Windows Features. If Windows Update i
Error message
Error while collecting Windows Features. If Windows Update is running wait until it finishes and try again. If the error persists try restarting your computer. In case nothing helps, read the KB957310 article.
What it means
An IOException thrown by WindowsFeatureFactory when the background thread that enumerates Windows Features via WMI/DSIM throws an exception. The factory runs the feature query on a separate thread and joins for up to 40 seconds; if the thread captured an exception (stored in `error`), it is wrapped into this IOException with a message guiding the user to wait for Windows Update, restart, or consult KB957310.
Source
Thrown at source/UninstallTools/Factory/WindowsFeatureFactory.cs:44
var t = new Thread(() =>
{
try
{
results.AddRange(WmiQueries.GetWindowsFeatures()
.Where(x => x.Enabled)
.Select(WindowsFeatureToUninstallerEntry));
}
catch (Exception ex)
{
error = ex;
}
});
t.Start();
t.Join(TimeSpan.FromSeconds(40));
if (error != null)
throw new IOException("Error while collecting Windows Features. If Windows Update is running wait until it finishes and try again. If the error persists try restarting your computer. In case nothing helps, read the KB957310 article.", error);
if (t.IsAlive)
{
//t.Abort();
throw new TimeoutException("WMI query has hung while collecting Windows Features, try restarting your computer. If the error persists read the KB957310 article.");
}
return results;
}
private static ApplicationUninstallerEntry WindowsFeatureToUninstallerEntry(WindowsFeatureInfo info)
{
var displayName = !string.IsNullOrEmpty(info.DisplayName) ? info.DisplayName : info.FeatureName;
return new ApplicationUninstallerEntry
{
RawDisplayName = displayName,
Comment = info.Description,
UninstallString = DismTools.GetDismUninstallString(info.FeatureName, false),
View on GitHub (pinned to 608321de98)
Solutions
- Wait for any running Windows Update to finish, then retry.
- Restart the computer to clear transient servicing-stack locks.
- Run `sfc /scannow` and `DISM /Online /Cleanup-Image /RestoreHealth` to repair the component store.
- Ensure the WMI service (winmgmt) is running; restart it if needed.
- Consult KB957310 for advanced troubleshooting of the Windows Features tooling.
Defensive patterns
Strategy: try-catch
Validate before calling
// Quick health check: is WMI available before enumerating features?
using (var searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem"))
{
try { searcher.Get().Count.ToString(); } catch { /* WMI unavailable; skip features */ }
} Try / catch
try { var features = WindowsFeatureFactory.GetFeatures(); }
catch (IOException ex) when (ex.Message.Contains("Error while collecting Windows Features"))
{ /* warn user, optionally retry after WU completes or skip feature list */ } Prevention
- Detect whether Windows Update is running and defer feature collection.
- Verify the WMI service is healthy before querying features.
- Run sfc/DISM RestoreHealth periodically to keep the CBS store valid.
- Make feature collection optional so a failure does not break the whole app.
When it happens
Trigger: WMI service (winmgmt) is malfunctioning, the DISM/Features provider is unavailable, Windows Update is actively locking the servicing stack, or the CBS store is corrupt — any of these causes the feature-enumeration API to throw inside the worker thread.
Common situations: Windows Update running in the background; corrupted component store (CBS); WMI service stopped or corrupted; recently failed Windows update leaving the servicing stack busy; group policy restricting WMI access.
Related errors
- WMI query has hung while collecting Windows Features, try re
- Dism output has invalid format
- Dism returned error code
- Win32_Directory.Compress returned {ret}
- Failed to detect your Steam installation. Launch Steam, exit
AI-assisted analysis of BCUninstaller/Bulk-Crap-Uninstaller@608321de98 (2026-08-13).
Data as JSON: /api/errors/88281ea94fae6d5e.
Report an issue: GitHub.