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 presets (postgres/redis-style managed daemons) are not implemented on Windows. validate_tools checks every daemon entry with a tool pin and, when compiled for/running on Windows, unconditionally bails with this message rather than attempting an unsupported workflow. There is no configuration that enables it on this platform yet.
Solutions
- Run daemon-dependent workflows on WSL or another Unix environment instead of native Windows.
- Guard the daemons config so Windows machines don't load it (e.g. platform-specific config files).
- Wait for/track upstream Windows support for daemon presets; do not attempt workarounds via cfg flags.
- On Windows CI, skip tasks that require daemon presets.
Defensive patterns
Strategy: fallback
Validate before calling
# Skip daemon-preset workflows on Windows if [[ "$(uname -s)" == MINGW* || "$OS" == "Windows_NT" ]]; then echo "daemon presets unsupported; use WSL"; fi
Type guard
const isWindows = process.platform === "win32";
if (isWindows) console.warn("mise daemon presets are not supported on Windows; use WSL."); Try / catch
try {
await mise.daemons.start();
} catch (e) {
if (String(e).includes("not supported on Windows")) {
console.error("Run under WSL or a Unix environment instead.");
}
} Prevention
- Use WSL for mise daemon preset workflows on Windows machines
- Keep daemon presets in config files only loaded on Unix platforms
- Skip daemon-dependent tasks in Windows CI
When it happens
Trigger: Using any mise.toml [daemons] preset entry on a Windows machine — validate_tools hits `if cfg!(windows)` and bails before any version validation.
Common situations: Running `mise daemons start` (or any command that prepares/validates daemon sets) on Windows, or sharing a mise.toml with daemon presets between Unix teammates and a Windows machine.
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/2a8841d1b70fe052.
Report an issue: GitHub.
Appendix: source
Thrown at src/daemons/runtime.rs:394
toml::Value::String(crate::env::MISE_BIN.to_string_lossy().into_owned()),
)])),
)])),
);
doc.insert("daemons".into(), toml::Value::Table(daemons));
Ok(header + &toml::to_string_pretty(&doc)?)
}
pub(crate) async fn validate_tools(
set: &DaemonSet,
config: &Arc<Config>,
ts: &Toolset,
) -> Result<()> {
for daemon in set.daemons.values() {
let Some((tool, version)) = &daemon.tool else {
continue;
};
if cfg!(windows) {
bail!("daemon presets are not supported on Windows yet");
}
let ba: crate::cli::args::BackendArg = tool.as_str().into();
let Some(versions) = ts.versions.get(&ba) else {
bail!("daemon {} requires {tool}@{version}", daemon.name);
};
let actual = versions
.versions
.first()
.ok_or_else(|| eyre::eyre!("missing {tool}"))?;
let compatible = ba
.backend()?
.list_installed_versions_matching(version)
.contains(&actual.version);
if compatible {
continue;
}
let requested = ToolRequest::new(
ba.into(),View on GitHub (pinned to 533346cc37)