jdx/mise · error
invalid python.precompiled_arch={arch:?}: this looks like a
Error message
invalid python.precompiled_arch={arch:?}: this looks like a target triple. Set python.precompiled_arch={precompiled_arch:?} and python.precompiled_os={precompiled_os:?} instead. What it means
Settings validation for python precompiled overrides: python.precompiled_arch must be a bare architecture (e.g. x86_64). If the value parses as a full target triple (arch-os-...), mise rejects it and tells you to split it into precompiled_arch and precompiled_os. This prevents silently unmatchable platform filters.
Source
Thrown at src/plugins/core/python.rs:1357
}
fn python_precompiled_url_path(settings: &Settings) -> String {
if cfg!(windows) || cfg!(linux) || cfg!(macos) {
format!(
"python-precompiled-{}-{}.gz",
python_arch(settings),
python_os(settings)
)
} else {
"python-precompiled.gz".into()
}
}
fn validate_python_precompiled_settings(settings: &Settings) -> Result<()> {
if let Some(arch) = &settings.python.precompiled_arch
&& let Some((precompiled_arch, precompiled_os)) = split_python_precompiled_triple(arch)
{
bail!(
"invalid python.precompiled_arch={arch:?}: this looks like a target triple. \
Set python.precompiled_arch={precompiled_arch:?} and \
python.precompiled_os={precompiled_os:?} instead."
);
}
if let Some(arch) = &settings.python.precompiled_arch
&& looks_like_python_precompiled_os_value(arch)
{
bail!(
"invalid python.precompiled_arch={arch:?}: this looks like an OS value. \
Use python.precompiled_os={arch:?} instead, and set python.precompiled_arch \
to an architecture such as \"x86_64\" or \"aarch64\"."
);
}
Ok(())
}
fn split_python_precompiled_triple(value: &str) -> Option<(&str, &str)> {View on GitHub (pinned to afd2eddd3a)
Solutions
- Split the triple: put the first component in python.precompiled_arch and the OS part in python.precompiled_os
- Unset python.precompiled_arch entirely to use the auto-detected platform
Example fix
// before mise settings set python.precompiled_arch aarch64-unknown-linux-gnu // after mise settings set python.precompiled_arch aarch64 mise settings set python.precompiled_os linux
Defensive patterns
Strategy: validation
Validate before calling
arch=$(mise settings get python.precompiled_arch 2>/dev/null || true) if [[ "$arch" == *-* ]]; then echo "triple detected; split into precompiled_arch + precompiled_os"; fi
Prevention
- Never paste compiler target triples into python.precompiled_arch
- Remember the setting takes a bare arch token (x86_64, aarch64)
- Put OS info only in python.precompiled_os
When it happens
Trigger: Setting `python.precompiled_arch = "x86_64-unknown-linux-gnu"` (or similar triple) via mise settings or env, then running `mise install python@...`; validated during install_version_.
Common situations: Copying a compiler target triple from rustc/gcc output into the setting; misunderstanding that the setting takes only the arch component.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- invalid python.precompiled_arch={arch:?}: this looks like an
- invalid {name} value {invalid:?}; expected one of: {}
- unknown history.sync mode {other:?}; use sync, fetch-only, o
- remote rustc action metadata is invalid
- remote action output directory is invalid
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/f9dc5d03f5731bb0.
Report an issue: GitHub.