LykosAI/StabilityMatrix · error · InvalidOperationException

No builds were found on the ROCm multi-arch index.

Error message

No {RocmSdkDevelPackageName} builds were found on the ROCm multi-arch index.

What it means

EnsureWindowsSdkDevelAsync queries the ROCm multi-arch package index for available RocmSdkDevelPackageName builds and picks a version matching the installed torch's nightly build date (or the latest). If the resulting version string is null/whitespace - meaning the index returned no usable builds - it throws InvalidOperationException. This indicates an upstream index problem, not a local environment problem.

Solutions

  1. Check network access to the ROCm multi-arch index and retry later if it's a transient index issue
  2. Update the installed ROCm torch nightly so its build date token matches available SDK devel builds
  3. Verify the configured index URL for the ROCm SDK devel packages is current and returns a package list
  4. Report/pin a known-good combination of torch nightly and SDK devel versions if AMD's index dropped matching builds

Example fix

// before
// torch nightly dev20250901 but index only has SDK devel for dev20250825
await rocmHelper.EnsureWindowsSdkDevelAsync(venvRunner, ...);
// after
await rocmHelper.InstallWindowsNativeTorchAsync(venvRunner, ...); // reinstall matching nightly
await rocmHelper.EnsureWindowsSdkDevelAsync(venvRunner, ...);
Defensive patterns

Strategy: retry

Validate before calling

// fetch the index package list first; proceed only when non-empty
var builds = await rocmHelper.GetAvailableSdkDevelBuildsAsync();
if (builds.Count == 0) { /* abort or notify user: index has no builds */ }

Try / catch

try { await rocmHelper.EnsureWindowsSdkDevelAsync(venvRunner, ...); }
catch (InvalidOperationException ex) when (ex.Message.Contains("builds were found"))
{
    // retry after a delay or surface an upstream-index message to the user
}

Prevention

When it happens

Trigger: The ROCm multi-arch index returned zero builds for RocmSdkDevelPackageName - e.g. the index URL is unreachable/parsed to an empty list, the nightly date token from the installed torch has no matching SDK devel build, or the index dropped older nightly builds matching the token.

Common situations: AMD's ROCm nightly index temporarily empty or restructured; installed torch nightly is newer than any published SDK devel build; network/proxy returned an empty package listing; the helper's index parsing failed silently.

Understand the failure class

Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.

Related errors


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

Appendix: source

Thrown at StabilityMatrix.Core/Services/Rocm/RocmPackageHelper.cs:178

        {
            return;
        }

        var indexResult = await venvRunner
            .PipIndex(RocmSdkDevelPackageName, multiArchPythonPackageIndexUrl)
            .ConfigureAwait(false);

        var latestVersion = indexResult?.AvailableVersions.FirstOrDefault();
        var matchingVersion = string.IsNullOrWhiteSpace(nightlyBuildDateToken)
            ? null
            : indexResult?.AvailableVersions.FirstOrDefault(version =>
                HasNightlyBuildDateToken(version, nightlyBuildDateToken)
            );
        var versionToInstall = matchingVersion ?? latestVersion;

        if (string.IsNullOrWhiteSpace(versionToInstall))
        {
            throw new InvalidOperationException(
                $"No {RocmSdkDevelPackageName} builds were found on the ROCm multi-arch index."
            );
        }

        if (!string.IsNullOrWhiteSpace(matchingVersion))
        {
            progress?.Report(
                new ProgressReport(
                    -1f,
                    $"Installing {RocmSdkDevelPackageName} {matchingVersion} for Windows ROCm...",
                    isIndeterminate: true
                )
            );
        }
        else
        {
            progress?.Report(
                new ProgressReport(

View on GitHub (pinned to af93d6ef57)