{"record":{"id":"3870c45469d7e2fd","repo":"jdx/mise","slug":"the-packslip-lists-a-and-b-for-this-host-and-m","errorCode":null,"errorMessage":"the packslip lists {a} and {b} for this host and mise will not guess between them{hint}","messagePattern":"the packslip lists (.+?) and (.+?) for this host and mise will not guess between them(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/backend/packslip.rs","lineNumber":338,"sourceCode":"    host: &HostPlatform,\n    variant: Option<&str>,\n) -> Result<&'a Artifact> {\n    let strict = host.as_host();\n    let variants = artifacts\n        .iter()\n        .filter_map(|a| a.variant.as_deref())\n        .unique()\n        .join(\", \");\n    let hint = match variant {\n        Some(v) => format!(\" with variant {v:?}\"),\n        None if !variants.is_empty() => {\n            format!(\"; set `variant` to one of {variants} if one of those is meant for you\")\n        }\n        None => String::new(),\n    };\n    match packslip::select_artifact(artifacts, &strict, variant, &FORMAT_PREFERENCE) {\n        Ok(artifact) => return Ok(artifact),\n        Err(Selection::Ambiguous(a, b)) => bail!(\n            \"the packslip lists {a} and {b} for this host and mise will not guess between them{hint}\"\n        ),\n        Err(Selection::NoMatch) => {}\n    }\n    if host.libc.as_deref() == Some(\"gnu\") {\n        let musl = Host {\n            libc: Some(\"musl\"),\n            ..strict\n        };\n        match packslip::select_artifact(artifacts, &musl, variant, &FORMAT_PREFERENCE) {\n            Ok(artifact) => {\n                debug!(\n                    \"no gnu build fits this host; taking the musl build {}, which is static\",\n                    artifact.name\n                );\n                return Ok(artifact);\n            }\n            Err(Selection::Ambiguous(a, b)) => bail!(","sourceCodeStart":320,"sourceCodeEnd":356,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/backend/packslip.rs#L320-L356","documentation":"packslip's select_artifact wraps packslip::select_artifact artifact selection. When the release manifest lists two artifacts that both match the host and mise's strict criteria, Selection::Ambiguous(a, b) is returned and mise refuses to guess between them, optionally appending a hint to set the `variant` option explicitly.","triggerScenarios":"Installing a packslip tool whose signed manifest contains two eligible artifacts for the current platform/arch (e.g. two gnu-libc builds differing only in an unlisted variant), with no `variant` option set to disambiguate.","commonSituations":"Projects publishing dual-variant releases (e.g. baseline vs v3-architecture x86_64 builds, or two musl variants) where the host matches both; ambiguous musl fallback on a gnu host.","solutions":["Set the `variant` tool option to one of the listed variants, e.g. `packslip:owner/repo = { version = \"x\", variant = \"<variant-name>\" }`.","Check the release manifest to see what distinguishes the two artifacts and pick the one intended for your platform.","If the ambiguity is a manifest bug, ask the project to fix its packslip manifest, or pin a different version whose manifest is unambiguous."],"exampleFix":"// before (mise.toml)\n[tools]\n\"packslip:owner/repo\" = \"1.2.3\"  # two matching artifacts\n\n// after\n[tools]\n\"packslip:owner/repo\" = { version = \"1.2.3\", variant = \"v3\" }","handlingStrategy":"validation","validationCode":"# inspect the manifest's artifacts for your host and pick a variant up front\nmise ls-remote 'packslip:owner/repo'  # then set variant explicitly if multiple artifacts match","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Set `variant` explicitly when a project publishes multiple builds per platform","Check the project's release manifest for variant names","Pin versions known to have unambiguous manifests for your platform"],"tags":["packslip","artifact-selection","ambiguity","platform"],"backgroundTag":"ambiguous-artifact-selection","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}