{"record":{"id":"a8ea0c1f55a92d29","repo":"jdx/mise","slug":"no-precompiled-ruby-is-available-for-this-platform","errorCode":null,"errorMessage":"no precompiled ruby is available for this platform\nTo compile ruby from source, run: mise settings ruby.compile=true","messagePattern":"no precompiled ruby is available for this platform\nTo compile ruby from source, run: mise settings ruby\\.compile=true","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/plugins/core/ruby.rs","lineNumber":626,"sourceCode":"        )))\n    }\n\n    /// Restrict a version list to versions that have a precompiled binary for this platform.\n    ///\n    /// Entries are only removed, never reordered, so `latest` and prefix resolution keep the\n    /// same ordering semantics as a source install.\n    async fn retain_precompiled_versions(\n        &self,\n        versions: Vec<VersionInfo>,\n    ) -> Result<Vec<VersionInfo>> {\n        let settings = Settings::get();\n        let source = &settings.ruby.precompiled_url;\n        if source.contains(\"://\") {\n            // A URL template can't be enumerated, so every version is assumed available.\n            return Ok(versions);\n        }\n        let Some(platform) = self.precompiled_platform() else {\n            bail!(\n                \"no precompiled ruby is available for this platform\\n\\\n                 To compile ruby from source, run: mise settings ruby.compile=true\"\n            );\n        };\n        // Only the releases `list_releases` returns are considered. Without\n        // MISE_LIST_ALL_VERSIONS that is the most recent page, which is where the\n        // precompiled builds live.\n        let releases = github::list_releases(source).await?;\n        let available = Self::precompiled_versions_from_releases(\n            &releases,\n            Self::source_requires_build_revision(source),\n            &platform,\n        );\n        Ok(versions\n            .into_iter()\n            .filter(|v| available.contains(&v.version))\n            .collect())\n    }","sourceCodeStart":608,"sourceCodeEnd":644,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/plugins/core/ruby.rs#L608-L644","documentation":"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.","triggerScenarios":"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.","commonSituations":"Exotic OS/arch combos (e.g. musl/alpine, freebsd) with no precompiled ruby hosted; a typo'd or unsupported platform override in ruby settings.","solutions":["Enable source compilation: `mise settings set ruby.compile true`","Install an OS/arch combination with precompiled ruby releases (standard gnu linux or macOS)","Point ruby.precompiled_url at a custom release source that hosts builds for your platform"],"exampleFix":"// before\nmise ls-remote ruby // on unsupported platform\n// after\nmise settings set ruby.compile true\nmise ls-remote ruby","handlingStrategy":"fallback","validationCode":"// skip precompiled ruby listings on platforms ruby-build does not host\nconst SUPPORTED = /^(x86_64|aarch64)-(apple-darwin|unknown-linux-gnu)$/;\nif (!SUPPORTED.test(platform)) {\n  await $`mise settings set ruby.compile true`;\n}","typeGuard":null,"tryCatchPattern":"try {\n  const versions = await $`mise ls-remote ruby`;\n} catch (e) {\n  if (String(e).includes(\"no precompiled ruby is available\")) {\n    await $`mise settings set ruby.compile true`;\n  } else throw e;\n}","preventionTips":["Set ruby.compile=true proactively on non-standard platforms (musl, BSD)","Check ruby-build's hosted precompiled platforms before adopting core ruby","Keep mise updated so newly added precompiled platforms are recognized"],"tags":["ruby","install","platform"],"backgroundTag":"unsupported-platform","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}