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
- If the cask is stage_only or purely a download manifest, install it with real Homebrew — mise has nothing to install.
- 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.
- Pick a different cask that ships a real app/binary for the tool you want.
- 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
- Avoid stage_only / manifest-only casks with mise; they have nothing to install.
- Check `brew info --cask=<token>` for actual artifacts before switching a tool to mise.
- Prefer casks that ship a real app or binary.
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
- brew-cask:{}: unsupported artifact type {}
- brew-cask: completion executable '{}' is ambiguous: {}
- brew-cask: failed to generate {} completions from {}: {}
- brew-cask: completion target '{}' must not contain '..'
- brew-cask: invalid completion target '{target_name}'
AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22).
Data as JSON: /api/errors/e20b3604e7881a97.
Report an issue: GitHub.