BCUninstaller/Bulk-Crap-Uninstaller · error · IOException
Failed to detect your Steam installation. Launch Steam, exit
Error message
Failed to detect your Steam installation. Launch Steam, exit it gracefully, and try again.
What it means
An IOException thrown by `SteamInstallation.FindSteamInstallationLocation` when Steam's install path cannot be determined from the Windows registry. The code tries `SOFTWARE\Valve\Steam` and its WOW6432Node mirror for an `InstallPath` value, then falls back to the `steam://` shell-open command registry key. If none yields an existing directory, an IOException is raised (wrapping any inner exception) telling the user to launch Steam, exit it gracefully, and retry so the registry is populated.
Source
Thrown at source/SteamHelper/SteamInstallation.cs:88
return path;
}
}
try
{
using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\steam\Shell\Open\Command"))
{
var command = key?.GetStringSafe(null);
var path = Path.GetDirectoryName(Misc.SeparateArgsFromCommand(command).Key);
if (path != null && Directory.Exists(path))
return path;
}
throw new IOException();
}
catch (Exception ex)
{
throw new IOException(
"Failed to detect your Steam installation. Launch Steam, exit it gracefully, and try again.", ex);
}
}
}
}View on GitHub (pinned to 608321de98)
Solutions
- Install Steam from the official site and launch it once so it writes registry keys.
- If already installed, launch Steam, wait for it to fully start, then exit it gracefully and retry.
- Verify the registry key `HKLM\SOFTWARE\Valve\Steam` (or WOW6432Node variant) has a valid `InstallPath`.
- Reinstall Steam if the registry keys are missing or point to a non-existent directory.
Defensive patterns
Strategy: try-catch
Validate before calling
// Check registry presence before relying on SteamInstallation.
using var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Valve\Steam");
var installPath = key?.GetValue("InstallPath") as string;
if (string.IsNullOrEmpty(installPath) || !Directory.Exists(installPath))
/* warn user Steam is not detected; prompt to install/launch */ Try / catch
try { var steam = SteamInstallation.Instance; }
catch (IOException ex) when (ex.Message.Contains("Failed to detect your Steam installation"))
{ /* prompt user to install/launch Steam, then retry or disable Steam features */ } Prevention
- Detect Steam via registry before invoking Steam-dependent features.
- Offer a graceful fallback (skip Steam apps) when Steam is absent.
- Launch Steam once after install to ensure registry is populated.
When it happens
Trigger: Steam is not installed; Steam was installed but never run so registry keys are absent; portable Steam that never wrote registry entries; registry keys were deleted by a cleaner tool; running on a non-Windows platform or under an account without registry read access.
Common situations: Fresh machine where Steam installer ran but Steam was never launched; user uninstalled Steam leaving stale/partial registry; registry cleaner removed the Valve keys; permission/privilege issues reading HKLM.
Related errors
- Could not find Steam App with the ID {appIdStr}
- This application does not have a valid registry entry
- Path does not point to a valid .reg file
- Path is too short/invalid
- Path root is invalid or missing
AI-assisted analysis of BCUninstaller/Bulk-Crap-Uninstaller@608321de98 (2026-08-13).
Data as JSON: /api/errors/b52e38f0c759e8b0.
Report an issue: GitHub.