{"record":{"id":"22a00115d35fe414","repo":"jdx/mise","slug":"no-matching-complete-lockfile-artifact-list-found","errorCode":null,"errorMessage":"No matching complete lockfile artifact list found for {} on platform {} (--locked mode)","messagePattern":"No matching complete lockfile artifact list found for (.+?) on platform (.+?) \\(--locked mode\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/backend/github.rs","lineNumber":905,"sourceCode":"                    &additional_patterns,\n                    &platform.additional_artifacts,\n                ) =>\n            {\n                platform\n                    .additional_artifacts\n                    .iter()\n                    .map(|artifact| ReleaseAsset {\n                        name: get_filename_from_url(&artifact.url),\n                        url: artifact.url.clone(),\n                        url_api: artifact.url_api.clone().unwrap_or_default(),\n                        digest: None,\n                    })\n                    .collect()\n            }\n            _ if ctx.locked\n                && (!additional_patterns.is_empty() || locked_additional_artifacts_present) =>\n            {\n                eyre::bail!(\n                    \"No matching complete lockfile artifact list found for {} on platform {} (--locked mode)\",\n                    tv.style(),\n                    platform_key\n                )\n            }\n            _ => {\n                let mut assets = Vec::new();\n                for pattern in &additional_patterns {\n                    assets.push(\n                        self.resolve_asset_url_for_target_with_pattern(\n                            &tv,\n                            &opts,\n                            &repo,\n                            &current_target,\n                            Some(pattern),\n                        )\n                        .await?,\n                    );","sourceCodeStart":887,"sourceCodeEnd":923,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/backend/github.rs#L887-L923","documentation":"In `--locked` install mode, mise requires every artifact for the tool version to be pinned by a complete lockfile artifact list. When the lockfile has no artifact entry matching the requested platform (or additional asset patterns cannot be matched against lockfile artifacts), github.rs bails instead of falling back to unpinned resolution. This prevents installing a binary whose integrity was never recorded.","triggerScenarios":"Running `mise install --locked` (or locked=true) for a GitHub-backend tool where tv.lock_platforms lacks an artifacts list covering the current platform key, or `additional_patterns` were configured but no locked artifact matches them.","commonSituations":"Upgrading a tool to a version that was never locked (`mise lock` not run); lockfile generated on a different OS/arch; adding extra_patterns or additional assets after the lockfile was created.","solutions":["Run `mise lock` (without --locked) to regenerate the lockfile including artifacts for this platform","Remove --locked / set locked=false for this install","Verify the platform key matches one present in the lockfile (regenerate on the target OS/arch)"],"exampleFix":"// before\nmise install --locked node@22.1.0   # fails: no locked artifacts for linux-x64\n// after\nmise lock node@22.1.0 && mise install --locked node@22.1.0","handlingStrategy":"validation","validationCode":"// bash: ensure lockfile has artifacts for this platform before --locked install\ngrep -q \"linux-x64\" mise.lock && grep -q \"artifacts\" mise.lock || { echo 'run: mise lock'; exit 1; }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run `mise lock` in CI on every platform you deploy to before enabling --locked","Regenerate the lockfile whenever bumping tool versions or additional_patterns","Keep lockfiles committed alongside mise.toml"],"tags":["lockfile","locked-mode","github-backend","install"],"backgroundTag":"missing-lockfile-entry","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"}