jdx/mise · error

mas list --json returned no parseable app objects

Error message

mas list --json returned no parseable app objects

What it means

Parse consistency check in parse_mas_json: `mas list --json` returned a non-empty JSON array but none of its objects could be parsed into an InstalledApp (missing adam_id/bundle_id/versionString fields), suggesting an unexpected mas output schema version rather than an empty list.

Source

Thrown at src/system/packages/mas.rs:101

            "versionString",
        ],
    )?;
    Some(InstalledApp {
        adam_id,
        bundle_id,
        version,
    })
}

fn parse_mas_json(output: &str) -> EyreResult<Vec<InstalledApp>> {
    let output = output.trim();
    if output.is_empty() {
        return Ok(vec![]);
    }
    if let Ok(Value::Array(values)) = serde_json::from_str::<Value>(output) {
        let apps: Vec<_> = values.iter().filter_map(parse_mas_json_value).collect();
        if apps.is_empty() && !values.is_empty() {
            bail!("mas list --json returned no parseable app objects");
        }
        return Ok(apps);
    }
    let mut apps = vec![];
    for line in output
        .lines()
        .map(str::trim)
        .filter(|line| !line.is_empty())
    {
        let value = serde_json::from_str::<Value>(line)
            .map_err(|err| eyre!("mas list --json returned invalid JSON: {err}"))?;
        match parse_mas_json_value(&value) {
            Some(app) => apps.push(app),
            None => bail!("mas list --json returned an app object without an ID and version"),
        }
    }
    Ok(apps)
}

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Run `mas list --json` manually and inspect the object schema
  2. Update the parser to the fields emitted by the installed mas version
  3. Ensure mas is up to date (`mas self-update` or brew upgrade mas)
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/system/packages/mas.rs:101 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/bac2be129a3b3fc7. Report an issue: GitHub.