jdx/mise · error
Ruby engine '{version}' is not supported on Windows.\nOnly s
Error message
Ruby engine '{version}' is not supported on Windows.\nOnly standard MRI Ruby versions can be installed via RubyInstaller2. What it means
The Windows Ruby core plugin only supports installing standard MRI (CRuby) interpreters via RubyInstaller2. If the requested tool version string resolves to a non-MRI Ruby engine (e.g. jruby, truffleruby, rbx, or a ref/channel name that is not a plain MRI version), install_version_ aborts before attempting any download. This is a deliberate guard because RubyInstaller2 only ships MRI builds.
Source
Thrown at src/plugins/core/ruby_windows.rs:229
body.trim()
.trim_start_matches("ruby-")
.trim_start_matches('v')
.to_string()
}
};
if v.is_empty() {
return Ok(vec![]);
}
Ok(vec![v])
}
async fn install_version_(
&self,
ctx: &InstallContext,
mut tv: ToolVersion,
) -> eyre::Result<ToolVersion> {
if !super::ruby_common::is_mri_version(&tv.version) {
bail!(
"Ruby engine '{}' is not supported on Windows.\n\
Only standard MRI Ruby versions can be installed via RubyInstaller2.",
tv.version
);
}
let tarball = self.download(&tv, ctx.pr.as_ref()).await?;
self.verify_checksum(ctx, &mut tv, &tarball)?;
self.install(ctx, &tv, &tarball).await?;
self.verify(ctx, &tv).await?;
self.install_rubygems_hook(&tv)?;
self.test_gem(&ctx.config, &tv, ctx.pr.as_ref()).await?;
if let Err(err) = self
.install_default_gems(&ctx.config, &tv, ctx.pr.as_ref())
.await
{
warn!("failed to install default ruby gems {err:#}");
}
Ok(tv)View on GitHub (pinned to afd2eddd3a)
Solutions
- Change the requested version to a standard MRI version string (e.g. 3.3.1) in your .tool-versions or mise.toml.
- If you genuinely need JRuby/TruffleRuby on Windows, install it manually or via another package manager instead of mise's ruby plugin.
- Check that no environment-specific config (MISE_*) overrides ruby's version with a non-MRI engine name.
Example fix
// before (.tool-versions) ruby jruby-9.4.5.0 // after (.tool-versions) ruby 3.3.1
Defensive patterns
Strategy: validation
Validate before calling
if !version.split(['-', '/']).next().unwrap_or("").chars().next().map_or(false, |c| c.is_ascii_digit()) {
eprintln!("ruby engine '{version}' is not installable on Windows; use a standard MRI version like 3.3.1");
} Prevention
- On Windows, pin only plain MRI version strings (e.g. 3.3.1) for ruby in mise config.
- Keep engine-specific rubies (jruby, truffleruby) out of shared .tool-versions files, or override them per-OS with MISE_* env config.
- Validate your mise.toml/.tool-versions after migrating projects across platforms.
When it happens
Trigger: Running `mise install ruby@<version>` (or having ruby in a .tool-versions/mise.toml) on Windows where ruby_common::is_mri_version(&tv.version) returns false — e.g. ruby@jruby-9.4, ruby@truffleruby-23.1, ruby@ref:master, or other non-standard version strings.
Common situations: Users migrating a project config from macOS/Linux to Windows that pins a non-MRI engine; copying a team .tool-versions that uses jruby or truffleruby; typos in the version string that fail MRI version parsing.
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
- Ruby engine '{}' is not supported on Windows. Only standard
- brew prune is not supported on windows
- brew-cask prune is not supported on windows
- python cannot currently be compiled on windows with core:pyt
- managed system files are only supported on Unix
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/f52aedfe9e64a7cd.
Report an issue: GitHub.