jdx/mise · error

brew-cask:{}: no supported install artifact found

Error message

brew-cask:{}: no supported install artifact found

What it means

After iterating every artifact stanza, mise checks that at least one supported artifact list is non-empty (apps, binaries, command wrappers, pkgs, installers, generic, fonts, completions, generated completions). If all are empty — the cask produced nothing installable — it bails with the cask token instead of performing an install that would do nothing. This catches both casks with no artifacts and casks whose every artifact was an unsupported type (which trigger error 751 first per-stanza).

Source

Thrown at src/system/packages/brew/cask.rs:5012

            continue;
        }
        bail!(
            "brew-cask:{}: unsupported artifact type {}",
            cask.token,
            artifact_type
        );
    }
    if artifacts.apps.is_empty()
        && artifacts.binaries.is_empty()
        && artifacts.command_wrappers.is_empty()
        && artifacts.pkgs.is_empty()
        && artifacts.installers.is_empty()
        && artifacts.generic.is_empty()
        && artifacts.fonts.is_empty()
        && artifacts.completions.is_empty()
        && artifacts.generated_completions.is_empty()
    {
        bail!(
            "brew-cask:{}: no supported install artifact found",
            cask.token
        );
    }
    artifacts.pkg_ids.sort();
    artifacts.pkg_ids.dedup();
    if artifacts.pkgs.is_empty() {
        artifacts.pkg_ids.clear();
    } else if artifacts.pkg_ids.is_empty() {
        bail!(
            "brew-cask:{}: pkg artifacts require pkgutil ids in uninstall metadata",
            cask.token
        );
    }
    Ok(artifacts)
}

fn validate_platform_support(cask: &Cask, artifacts: &CaskArtifacts) -> Result<()> {

View on GitHub (pinned to 6f52dcdf99)

Solutions

  1. If the cask is stage_only or purely a download manifest, install it with real Homebrew — mise has nothing to install.
  2. Inspect the cask JSON's artifacts array (brew info --cask=v2 --json or the Homebrew API) to confirm it is actually empty or only contains unsupported kinds.
  3. Pick a different cask that ships a real app/binary for the tool you want.
  4. If you author the metadata, ensure at least one supported artifact stanza (app, binary, pkg, installer, font, completion, or generic) is present.
Defensive patterns

Strategy: validation

Validate before calling

jq -e '(.artifacts // [] | length) > 0 and ([.artifacts[] | keys[]] | any(. == "app" or . == "binary" or . == "pkg" or . == "installer" or . == "font"))' cask.json >/dev/null || echo 'nothing installable by mise'

Prevention

When it happens

Trigger: A 'stage_only' cask (Homebrew construct that stages a download without installing), a cask whose stanza list is empty or contains only uninstall/preflight metadata, or one where all recognized stanzas parsed to nothing. The all-empty conjunction at src/system/packages/brew/cask.rs:5012 is evaluated before pkg-id bookkeeping.

Common situations: stage_only utility casks; casks that exist purely as download manifests for other tools to consume; metadata generation bugs that dropped the artifacts array; YAML misnesting that left artifacts empty.

Related errors


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