jdx/mise · error

packslip host requirements not met: {failures}; set ignore_r

Error message

packslip host requirements not met: {failures}; set ignore_requirements=true for this tool to override

What it means

packslip-verified tools can declare host requirements (e.g. minimum OS/CPU features). Before trusting the signed list, mise checks the host against these requirements and throws if any fail, unless the tool's ignore_requirements flag is set.

Source

Thrown at src/packslip_requirements.rs:31

pub(crate) struct Report {
    pub(crate) failures: Vec<String>,
    pub(crate) warnings: Vec<String>,
}

impl Report {
    pub(crate) fn enforce(&self, ignore: bool) -> Result<()> {
        for warning in &self.warnings {
            warn!("packslip requirement: {warning}");
        }
        if self.failures.is_empty() {
            return Ok(());
        }
        let failures = self.failures.join("; ");
        if ignore {
            warn!("overriding packslip host requirements: {failures}");
            Ok(())
        } else {
            bail!(
                "packslip host requirements not met: {failures}; set ignore_requirements=true for this tool to override"
            )
        }
    }
}

/// Compare arbitrarily large numeric components without overflow or semver.
fn numeric_cmp(actual: &str, min: &str) -> Option<Ordering> {
    fn parts(s: &str) -> Option<Vec<&str>> {
        s.split('.')
            .map(|p| {
                if p.is_empty() || !p.bytes().all(|c| c.is_ascii_digit()) {
                    return None;
                }
                let p = p.trim_start_matches('0');
                Some(if p.is_empty() { "0" } else { p })
            })
            .collect()

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Upgrade the host OS or hardware to meet the stated requirements
  2. Set ignore_requirements=true for this tool in its tool configuration to override
  3. Run on a different machine that satisfies the requirements

Example fix

// before
[tools]
aqua:org/tool = { version = "1.2", }
// after
[tools]
aqua:org/tool = { version = "1.2", ignore_requirements = true }
Defensive patterns

Strategy: validation

Validate before calling

let reqs = tool_requirements(aqua_tool)?;
let failures = reqs.iter().filter(|r| !host_satisfies(r)).collect::<Vec<_>>();
if !failures.is_empty() {
    eprintln!("host fails: {failures:?}; set ignore_requirements=true or upgrade host");
}

Try / catch

match result {
    Err(e) if e.to_string().starts_with("packslip host requirements not met") => {
        eprintln!("run on a compliant host or set ignore_requirements=true");
    }
    other => other?,
}

Prevention

When it happens

Trigger: Installing a packslip tool whose signed release list declares requirements that the current host fails, and the tool's configuration does not set ignore_requirements=true.

Common situations: Running on older hardware lacking required CPU features; using an OS variant not covered by the tool's requirements; running inside a slim container/VM missing required kernel features.

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


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/d28d3916cdb267c6. Report an issue: GitHub.