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

  1. Install Steam from the official site and launch it once so it writes registry keys.
  2. If already installed, launch Steam, wait for it to fully start, then exit it gracefully and retry.
  3. Verify the registry key `HKLM\SOFTWARE\Valve\Steam` (or WOW6432Node variant) has a valid `InstallPath`.
  4. 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

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


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