jdx/mise · error

unsupported conda package info format

Error message

unsupported conda package info format

What it means

Each entry under mise.lock's [conda-packages] section must be a table containing at least a string url key (a missing url raises "missing url in conda package info" just above); any non-table value bails with "unsupported conda package info format" (src/lockfile.rs:770-786).

Source

Thrown at src/lockfile.rs:785

impl TryFrom<toml::Value> for CondaPackageInfo {
    type Error = Report;
    fn try_from(value: toml::Value) -> Result<Self> {
        match value {
            toml::Value::Table(mut t) => {
                let url = t
                    .remove("url")
                    .and_then(|v| match v {
                        toml::Value::String(s) => Some(s),
                        _ => None,
                    })
                    .ok_or_else(|| eyre::eyre!("missing url in conda package info"))?;
                let checksum = match t.remove("checksum") {
                    Some(toml::Value::String(s)) => Some(s),
                    _ => None,
                };
                Ok(CondaPackageInfo { url, checksum })
            }
            _ => bail!("unsupported conda package info format"),
        }
    }
}

impl TryFrom<toml::Value> for PkgxPackageInfo {
    type Error = Report;
    fn try_from(value: toml::Value) -> Result<Self> {
        match value {
            toml::Value::Table(mut t) => {
                let url = t
                    .remove("url")
                    .and_then(|v| match v {
                        toml::Value::String(s) => Some(s),
                        _ => None,
                    })
                    .ok_or_else(|| eyre::eyre!("missing url in pkgx package info"))?;
                let checksum = match t.remove("checksum") {
                    Some(toml::Value::String(s)) => Some(s),

View on GitHub (pinned to 6f52dcdf99)

Solutions

  1. Regenerate the lockfile: rm mise.lock && mise lock (conda package info is rebuilt from resolved installs).
  2. Upgrade/align mise versions so the conda-packages format matches.
  3. Do not hand-edit mise.lock.

Example fix

# before (mise.lock)
[conda-packages.linux-64.numpy]
value = "https://repo.anaconda.com/..."   # wrong: must be url = "..." inside a table

# after — regenerate
$ rm mise.lock && mise lock
Defensive patterns

Strategy: validation

Validate before calling

# CI guard: conda-packages entries must be tables with a string url
python3 -c "
import tomllib
for pkgs in tomllib.load(open('mise.lock', 'rb')).get('conda-packages', {}).values():
    for name, info in pkgs.items():
        if not isinstance(info, dict) or not isinstance(info.get('url'), str):
            raise SystemExit('bad conda package info: %s' % name)
"

Try / catch

On "unsupported conda package info format", regenerate mise.lock rather than fixing the entry by hand; if the file came from another mise version, upgrade first so regeneration reproduces the same section.

Prevention

When it happens

Trigger: [conda-packages.linux-x64.pkg] = "https://..." (bare string instead of a table), or an integer/array entry — hand edits or version drift in the lockfile format.

Common situations: Hand-editing conda package entries in mise.lock; conda-related sections written by a different mise version than the reader.

Related errors


AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22). Data as JSON: /api/errors/679a95f6912302d0. Report an issue: GitHub.