jdx/mise · error
daemon presets are not supported on Windows yet
Error message
daemon presets are not supported on Windows yet
What it means
Daemon preset initialization (creating data directories, running initdb, etc.) is not yet implemented on Windows; initialize bails out early with this message when compiled for/running on Windows, after the experimental and safe-mode checks.
Solutions
- Run daemon presets on Linux/macOS (e.g. WSL) instead of native Windows
- Wait for Windows support in a future mise release
- Disable the daemon preset config on Windows via os-specific config
Example fix
null
Defensive patterns
Strategy: fallback
Validate before calling
if (process.platform === 'win32') console.log('daemon presets unsupported on Windows'); Prevention
- Guard daemon-preset config behind OS checks on mixed teams
- Use WSL for daemon presets on Windows
- Track mise releases for Windows support
When it happens
Trigger: Calling initialize (e.g. via `mise daemon` preset setup) on a Windows platform, regardless of configuration correctness.
Common situations: Windows developer running the same mise.toml daemon presets as Linux teammates; CI on Windows runners hitting a config that works on Linux.
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
- daemon presets are not supported on Windows yet
- brew-cask prune is not supported on windows
- brew prune is not supported on windows
- python cannot currently be compiled on windows with…
- Ruby engine ' ' is not supported on Windows.\nOnly standard…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/ef1564a307c0929d.
Report an issue: GitHub.
Appendix: source
Thrown at src/daemons/presets.rs:180
"postgres" => output.trim().strip_prefix("postgres (PostgreSQL) "),
"redis" => output
.split_whitespace()
.find_map(|part| part.strip_prefix("v=")),
_ => None,
}
.ok_or_else(|| eyre::eyre!("unrecognized {preset} version output: {output}"))?;
let major = version.split('.').next().unwrap_or_default();
if major.is_empty() || !major.chars().all(|c| c.is_ascii_digit()) {
bail!("unrecognized {preset} version: {version}");
}
Ok(major.into())
}
pub(crate) fn initialize(preset_name: &str, data: &Path, database: &str) -> Result<()> {
crate::config::Settings::get().ensure_experimental("daemon presets")?;
crate::config::Settings::ensure_not_safe("initializing daemon data")?;
if cfg!(windows) {
bail!("daemon presets are not supported on Windows yet");
}
let preset = preset(preset_name)?;
let parent = data
.parent()
.ok_or_else(|| eyre::eyre!("daemon data must have a parent directory"))?;
std::fs::create_dir_all(parent)?;
let _lock = crate::lock_file::LockFile::new(data).lock()?;
let output = Command::new(&preset.binary).arg("--version").output()?;
if !output.status.success() {
bail!("unable to determine {} version", preset.binary);
}
let major = major(preset_name, &String::from_utf8(output.stdout)?)?;
let marker = format!("{preset_name}:{major}\n");
if data.exists() {
let existing = std::fs::read_to_string(data.join(".mise-daemon-version"))
.wrap_err("daemon data was not initialized completely; inspect it and migrate or reset it explicitly")?;
if existing != marker {
bail!(View on GitHub (pinned to 533346cc37)