{"record":{"id":"a9022a17d24dd975","repo":"jdx/mise","slug":"unrecognized-github-attestations-status-s-in-l","errorCode":null,"errorMessage":"unrecognized github_attestations status {s:?} in lockfile","messagePattern":"unrecognized github_attestations status (.+?) in lockfile","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lockfile.rs","lineNumber":584,"sourceCode":"                };\n                let url_api = match t.remove(\"url_api\") {\n                    Some(toml::Value::String(s)) => Some(s),\n                    _ => None,\n                };\n                let conda_deps = match t.remove(\"conda_deps\") {\n                    Some(toml::Value::Array(arr)) => Some(\n                        arr.into_iter()\n                            .filter_map(|v| v.as_str().map(String::from))\n                            .collect(),\n                    ),\n                    _ => None,\n                };\n                let github_attestations = match t.remove(\"github_attestations\") {\n                    Some(toml::Value::String(s)) if s == \"unavailable\" => {\n                        Some(GithubAttestationsStatus::Unavailable)\n                    }\n                    Some(toml::Value::String(s)) => {\n                        bail!(\"unrecognized github_attestations status {s:?} in lockfile\")\n                    }\n                    _ => None,\n                };\n                let pkgx_deps = match t.remove(\"pkgx_deps\") {\n                    Some(toml::Value::Array(arr)) => Some(\n                        arr.into_iter()\n                            .filter_map(|v| v.as_str().map(String::from))\n                            .collect(),\n                    ),\n                    _ => None,\n                };\n                let pkgx_provides = match t.remove(\"pkgx_provides\") {\n                    Some(toml::Value::Array(arr)) => Some(\n                        arr.into_iter()\n                            .filter_map(|v| v.as_str().map(String::from))\n                            .collect(),\n                    ),\n                    _ => None,","sourceCodeStart":566,"sourceCodeEnd":602,"githubUrl":"https://github.com/jdx/mise/blob/6f52dcdf99e282ef7a7db68c81301fa4618d0f79/src/lockfile.rs#L566-L602","documentation":"While parsing a mise.lock platform table, the optional github_attestations field only accepts the sentinel string \"unavailable\" (src/lockfile.rs:577-584). Any other value bails and the whole lockfile parse fails — again a forward-compatibility guard against formats written by newer mise builds.","triggerScenarios":"A mise.lock containing github_attestations = \"<other>\" — written by a newer mise that gained a new attestation status, then read by an older build; or a hand-edited value.","commonSituations":"Version skew after one teammate or CI lane upgrades mise and commits a refreshed mise.lock; edited lockfiles; pre-release/newer mise streams writing fields pinned readers cannot parse.","solutions":["Upgrade mise to at least the version that wrote the lockfile.","Or regenerate: rm mise.lock && mise lock with the installed version.","Pin a single mise version repo-wide and bump writer and readers together.","Revert hand edits to mise.lock."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# CI guard: github_attestations must be the only recognized sentinel\ngrep -P 'github_attestations\\s*=\\s*\"(?!unavailable\")' mise.lock && { echo 'unsupported github_attestations status — upgrade mise or re-lock'; exit 1; } || true","typeGuard":null,"tryCatchPattern":"Catch lockfile parse errors and branch on the message: any \"unrecognized … in lockfile\" means version skew — upgrade mise or rm mise.lock && mise lock, then fail the job with that guidance rather than hand-patching the value.","preventionTips":["Keep one mise version across team and CI.","Regenerate the lockfile on mise upgrades instead of carrying old files forward.","Never hand-edit lockfile enum-like fields."],"tags":["lockfile","parse","version-mismatch","attestations"],"backgroundTag":"lockfile-schema-mismatch","analyzedSha":"6f52dcdf99e282ef7a7db68c81301fa4618d0f79","analyzedAt":"2026-08-22T10:14:23.840Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}