jdx/mise · error

no precompiled ruby is available for this platform To…

Error message

no precompiled ruby is available for this platform
To compile ruby from source, run: mise settings ruby.compile=true

What it means

When listing available ruby versions, the core ruby plugin filters to precompiled builds; precompiled_platform() returns None for platforms ruby-build's precompiled releases do not cover, and _list_remote_versions bails instead of returning an empty list. The message includes the hint to enable ruby.compile so the version list/install can fall back to source builds.

Solutions

  1. Enable source compilation: `mise settings set ruby.compile true`
  2. Install an OS/arch combination with precompiled ruby releases (standard gnu linux or macOS)
  3. Point ruby.precompiled_url at a custom release source that hosts builds for your platform

Example fix

// before
mise ls-remote ruby // on unsupported platform
// after
mise settings set ruby.compile true
mise ls-remote ruby
Defensive patterns

Strategy: fallback

Validate before calling

// skip precompiled ruby listings on platforms ruby-build does not host
const SUPPORTED = /^(x86_64|aarch64)-(apple-darwin|unknown-linux-gnu)$/;
if (!SUPPORTED.test(platform)) {
  await $`mise settings set ruby.compile true`;
}

Try / catch

try {
  const versions = await $`mise ls-remote ruby`;
} catch (e) {
  if (String(e).includes("no precompiled ruby is available")) {
    await $`mise settings set ruby.compile true`;
  } else throw e;
}

Prevention

When it happens

Trigger: Running `mise ls-remote ruby` (or any install that calls _list_remote_versions) on a platform for which self.precompiled_platform() has no mapping, while the ruby.precompiled_url setting is not a custom URL template.

Common situations: Exotic OS/arch combos (e.g. musl/alpine, freebsd) with no precompiled ruby hosted; a typo'd or unsupported platform override in ruby settings.

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 jdx/mise@533346cc37 (2026-09-17). Data as JSON: /api/errors/a8ea0c1f55a92d29. Report an issue: GitHub.

Appendix: source

Thrown at src/plugins/core/ruby.rs:626

        )))
    }

    /// Restrict a version list to versions that have a precompiled binary for this platform.
    ///
    /// Entries are only removed, never reordered, so `latest` and prefix resolution keep the
    /// same ordering semantics as a source install.
    async fn retain_precompiled_versions(
        &self,
        versions: Vec<VersionInfo>,
    ) -> Result<Vec<VersionInfo>> {
        let settings = Settings::get();
        let source = &settings.ruby.precompiled_url;
        if source.contains("://") {
            // A URL template can't be enumerated, so every version is assumed available.
            return Ok(versions);
        }
        let Some(platform) = self.precompiled_platform() else {
            bail!(
                "no precompiled ruby is available for this platform\n\
                 To compile ruby from source, run: mise settings ruby.compile=true"
            );
        };
        // Only the releases `list_releases` returns are considered. Without
        // MISE_LIST_ALL_VERSIONS that is the most recent page, which is where the
        // precompiled builds live.
        let releases = github::list_releases(source).await?;
        let available = Self::precompiled_versions_from_releases(
            &releases,
            Self::source_requires_build_revision(source),
            &platform,
        );
        Ok(versions
            .into_iter()
            .filter(|v| available.contains(&v.version))
            .collect())
    }

View on GitHub (pinned to 533346cc37)