jdx/mise · error
unsupported asset info format
Error message
unsupported asset info format
What it means
A platform entry in mise.lock must be either a bare string (interpreted as just a checksum) or a table with the known keys (src/lockfile.rs:544-547 and the terminal match at src/lockfile.rs:681). Any other TOML type — integer, float, boolean, array — bails with "unsupported asset info format".
Source
Thrown at src/lockfile.rs:681
None => Vec::new(),
};
Ok(PlatformInfo {
install,
checksum,
size,
url,
url_api,
conda_deps,
pkgx_deps,
pkgx_provides,
pkgx_runtime_env,
provenance,
provenance_verified,
github_attestations,
additional_artifacts,
})
}
_ => bail!("unsupported asset info format"),
}
}
}
impl From<PlatformInfo> for toml::Value {
fn from(platform_info: PlatformInfo) -> Self {
let mut table = toml::Table::new();
if let Some(install) = platform_info.install {
table.insert("install".to_string(), install.into());
}
if let Some(checksum) = platform_info.checksum {
table.insert("checksum".to_string(), checksum.into());
}
if let Some(url) = platform_info.url {
table.insert("url".to_string(), url.into());
}
if let Some(url_api) = platform_info.url_api {
table.insert("url_api".to_string(), url_api.into());View on GitHub (pinned to 6f52dcdf99)
Solutions
- Regenerate the lockfile: rm mise.lock && mise lock.
- Upgrade mise so writer and reader formats match.
- Do not hand-edit mise.lock entries.
Example fix
# before (mise.lock, hand-edited scalar entry) [tools.mytool.1.0.0.linux-x64] sha = 12345 # after — let mise regenerate the entry $ rm mise.lock && mise lock
Defensive patterns
Strategy: validation
Validate before calling
# CI guard: every tools.<name> entry must be a string or a table
python3 -c "
import tomllib
for entries in tomllib.load(open('mise.lock', 'rb')).get('tools', {}).values():
if not isinstance(entries, list):
raise SystemExit('tools entry must be an array')
for e in entries:
for p in (e.get('platforms') or {}).values():
if not isinstance(p, (str, dict)):
raise SystemExit('platform entry must be a string or table: %r' % p)
" Try / catch
"unsupported asset info format" means a lockfile value has a wrong TOML type: regenerate the lockfile (rm mise.lock && mise lock) instead of patching the scalar; fail fast with a version-alignment hint if the lockfile is protected.
Prevention
- Never hand-edit mise.lock entries; it is generated output.
- Validate lockfile shape in CI with a TOML parser before running mise.
- Align mise versions to avoid format drift.
When it happens
Trigger: A tools.<name>.<version> platform value that is an integer, boolean, or array — hand edits, or a writer format this build does not understand.
Common situations: Hand-editing lockfiles and replacing an entry with a scalar; lockfiles from a much newer/older mise format.
Related errors
- additional_artifacts must be an array in lockfile
- unsupported conda package info format
- unsupported pkgx 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/42576b190b02092f.
Report an issue: GitHub.