jdx/mise · error
unsupported pkgx package info format
Error message
unsupported pkgx package info format
What it means
Each entry under mise.lock's pkgx section must be a table with a string url (required), optional checksum, pkgx_provides (string table), and pkgx_runtime_env (string table); any non-table value bails with "unsupported pkgx package info format" (src/lockfile.rs:789-828).
Source
Thrown at src/lockfile.rs:827
.filter_map(|v| v.as_str().map(String::from))
.collect(),
),
_ => None,
};
let pkgx_runtime_env = match t.remove("pkgx_runtime_env") {
Some(toml::Value::Table(table)) => {
Some(string_table_from_toml_value(toml::Value::Table(table))?)
}
_ => None,
};
Ok(PkgxPackageInfo {
url,
checksum,
pkgx_provides,
pkgx_runtime_env,
})
}
_ => bail!("unsupported pkgx package info format"),
}
}
}
fn string_table_from_toml_value(value: toml::Value) -> Result<BTreeMap<String, String>> {
match value {
toml::Value::Table(table) => Ok(table
.into_iter()
.filter_map(|(key, value)| match value {
toml::Value::String(value) => Some((key, value)),
_ => None,
})
.collect()),
_ => Ok(BTreeMap::new()),
}
}
fn toml_table_from_string_map(values: BTreeMap<String, String>) -> toml::Table {View on GitHub (pinned to 6f52dcdf99)
Solutions
- Regenerate the lockfile: rm mise.lock && mise lock.
- Align mise versions across machines/CI.
- Do not hand-edit mise.lock.
Defensive patterns
Strategy: validation
Validate before calling
# CI guard: pkgx entries must be tables with a string url
python3 -c "
import tomllib
d = tomllib.load(open('mise.lock', 'rb'))
for k, v in d.items():
if 'pkgx' in k and isinstance(v, dict):
for name, info in v.items():
if not isinstance(info, dict) or not isinstance(info.get('url'), str):
raise SystemExit('bad pkgx package info: %s' % name)
" Try / catch
On "unsupported pkgx package info format", delete and regenerate mise.lock with an aligned mise version; do not hand-convert the entry, and surface the version-skew hint in job output.
Prevention
- Regenerate lockfiles after mise upgrades.
- Never hand-edit pkgx sections.
- Add a lockfile structure check to CI before the install step.
When it happens
Trigger: A pkgx package entry that is a bare string, integer, or array instead of a table — hand edits, or a lockfile written by a mise version with a different pkgx section shape.
Common situations: Hand-editing mise.lock pkgx entries; format drift after upgrading/downgrading mise.
Related errors
- additional_artifacts must be an array in lockfile
- unsupported asset info format
- unsupported conda package info format
- invalid lockfile format for tool {short}: expected array ([[
- unsupported lockfile format {}
AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22).
Data as JSON: /api/errors/51b1febc5fb77d47.
Report an issue: GitHub.