{"record":{"id":"679a95f6912302d0","repo":"jdx/mise","slug":"unsupported-conda-package-info-format","errorCode":null,"errorMessage":"unsupported conda package info format","messagePattern":"unsupported conda package info format","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lockfile.rs","lineNumber":1040,"sourceCode":"impl TryFrom<toml::Value> for CondaPackageInfo {\n    type Error = Report;\n    fn try_from(value: toml::Value) -> Result<Self> {\n        match value {\n            toml::Value::Table(mut t) => {\n                let url = t\n                    .remove(\"url\")\n                    .and_then(|v| match v {\n                        toml::Value::String(s) => Some(s),\n                        _ => None,\n                    })\n                    .ok_or_else(|| eyre::eyre!(\"missing url in conda package info\"))?;\n                let checksum = match t.remove(\"checksum\") {\n                    Some(toml::Value::String(s)) => Some(s),\n                    _ => None,\n                };\n                Ok(CondaPackageInfo { url, checksum })\n            }\n            _ => bail!(\"unsupported conda package info format\"),\n        }\n    }\n}\n\nimpl TryFrom<toml::Value> for PkgxPackageInfo {\n    type Error = Report;\n    fn try_from(value: toml::Value) -> Result<Self> {\n        match value {\n            toml::Value::Table(mut t) => {\n                let url = t\n                    .remove(\"url\")\n                    .and_then(|v| match v {\n                        toml::Value::String(s) => Some(s),\n                        _ => None,\n                    })\n                    .ok_or_else(|| eyre::eyre!(\"missing url in pkgx package info\"))?;\n                let checksum = match t.remove(\"checksum\") {\n                    Some(toml::Value::String(s)) => Some(s),","sourceCodeStart":1022,"sourceCodeEnd":1058,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/lockfile.rs#L1022-L1058","documentation":"The `conda-packages` section of mise.lock maps platform -> package basename -> package info, and each package info must be a TOML table with `url` (and optionally `checksum`). If the value at that leaf is not a table of the expected shape, the parser bails because it cannot construct a CondaPackageInfo.","triggerScenarios":"Parsing a mise.lock whose conda-packages entry value is a scalar, array, or a table with an unrecognized variant instead of `{ url = ..., checksum = ... }`.","commonSituations":"Hand-editing conda package entries; a newer mise writing a redesigned conda-packages format; corrupted or badly merged lockfiles.","solutions":["Fix the entry in mise.lock to the expected shape: [conda-packages.<platform>.<pkg>] url = \"...\", checksum = \"...\".","Delete the malformed conda-packages entry (or section) and re-run `mise lock`.","Upgrade mise if the lockfile was written by a newer version with a different conda format."],"exampleFix":"// before (mise.lock)\n[conda-packages.linux-x64.curl]\npackage = \"curl\"  # wrong shape\n\n// after\n[conda-packages.linux-x64.curl]\nurl = \"https://conda.anaconda.org/.../curl.tar.bz2\"\nchecksum = \"sha256:...\"","handlingStrategy":"validation","validationCode":"const pkg = doc.get('conda-packages')?.[platform]?.[name];\nif (pkg && (typeof pkg !== 'object' || !('url' in pkg))) throw new Error('conda package entry must be a table with url');","typeGuard":"function isCondaPackageInfo(v) { return typeof v === 'object' && v !== null && typeof v.url === 'string'; }","tryCatchPattern":null,"preventionTips":["Let mise generate conda-packages entries; avoid manual edits.","Validate lockfile structure after resolving merge conflicts.","Pin the same mise version in dev and CI."],"tags":["lockfile","parsing","conda","toml"],"backgroundTag":"unsupported-config-value","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"}