LykosAI/StabilityMatrix · error · InvalidOperationException

Windows ROCm package commands require a supported Windows…

Error message

Windows ROCm package commands require a supported Windows ROCm machine state.

What it means

EnsureRocmCompatibility calls IRocmPackageHelper.GetCompatibility() and throws this InvalidOperationException when the machine is not in a state supported for Windows ROCm packages (e.g. no compatible AMD GPU/driver, ROCm not detected). If the helper provides a FailureReason, that more specific reason is thrown instead; this message is the fallback. It runs before every ROCm command (SDK, SageAttention, bitsandbytes, FlashAttention).

Solutions

  1. Read the thrown FailureReason (or run the compatibility check via IRocmPackageHelper yourself) and address that specific issue first.
  2. Install/update AMD Software (Adrenalin) drivers to a version supporting the required ROCm/HIP SDK on Windows.
  3. Install the HIP SDK / Windows ROCm development prerequisites the helper expects, then retry.
  4. If the GPU is not ROCm-compatible, use the CUDA or CPU variant of the package instead of Windows ROCm commands.

Example fix

// before
await rocmStep.ExecuteAsync(progress);
// after
var compat = rocmPackageHelper.GetCompatibility();
if (!compat.IsCompatible)
    throw new InvalidOperationException($"ROCm unsupported: {compat.FailureReason}");
await rocmStep.ExecuteAsync(progress);
Defensive patterns

Strategy: validation

Validate before calling

var compat = rocmPackageHelper.GetCompatibility();
if (!compat.IsCompatible)
    throw new InvalidOperationException($"Windows ROCm not supported: {compat.FailureReason}");

Try / catch

try
{
    await step.ExecuteAsync(progress);
}
catch (InvalidOperationException ex) when (ex.Message.Contains("Windows ROCm"))
{
    // surface compat.FailureReason to user; suggest driver/HIP SDK install or CUDA/CPU variant
}

Prevention

When it happens

Trigger: Executing any WindowsRocmPackageCommandType step on a Windows machine where GetCompatibility().IsCompatible is false: no AMD GPU, unsupported GPU model, outdated/broken AMD drivers, ROCm runtime not installed, or running in a VM without ROCm support.

Common situations: NVIDIA/Intel GPU users attempting ROCm one-click installs; AMD GPUs whose driver is too old for ROCm 7.x; clean Windows installs lacking HIP SDK; Windows VMs in cloud environments.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of LykosAI/StabilityMatrix@af93d6ef57 (2026-09-12). Data as JSON: /api/errors/4ca14d91f7092dc3. Report an issue: GitHub.

Appendix: source

Thrown at StabilityMatrix.Core/Models/PackageModification/InstallWindowsRocmPackageCommandStep.cs:124

            case WindowsRocmPackageCommandType.BitsAndBytes:
                await ExecuteBitsAndBytesAsync(venvRunner, pyVersion, progress).ConfigureAwait(false);
                break;
            case WindowsRocmPackageCommandType.FlashAttention:
                await ExecuteFlashAttentionAsync(venvRunner, progress).ConfigureAwait(false);
                break;
            default:
                throw new InvalidOperationException(
                    $"Unsupported Windows ROCm package command type: {CommandType}."
                );
        }
    }

    private void EnsureRocmCompatibility()
    {
        var compatibility = rocmPackageHelper.GetCompatibility();
        if (!compatibility.IsCompatible)
        {
            throw new InvalidOperationException(
                compatibility.FailureReason
                    ?? "Windows ROCm package commands require a supported Windows ROCm machine state."
            );
        }
    }

    private async Task EnsureVcBuildToolsAsync(IProgress<ProgressReport>? progress)
    {
        if (!prerequisiteHelper.IsVcBuildToolsInstalled)
        {
            await prerequisiteHelper
                .InstallPackageRequirements([PackagePrerequisite.VcBuildTools], progress: progress)
                .ConfigureAwait(false);
        }
    }

    private async Task ExecuteDevelopmentSdkAsync(
        IPyVenvRunner venvRunner,

View on GitHub (pinned to af93d6ef57)