jdx/mise · error
brew-cask:{}: unsupported artifact type {}
Error message
brew-cask:{}: unsupported artifact type {} What it means
While building the artifact inventory for a cask, mise runs each stanza through its parse_* helpers (app, binary, pkg, installer, generic, font, completion, generated completion, command_wrapper). If a stanza's artifact type matches none of them, mise explicitly rejects the cask as unsupported rather than silently skipping the stanza — the error names the cask token and the unknown artifact type string.
Source
Thrown at src/system/packages/brew/cask.rs:4996
continue;
}
if let Some(artifact) = parse_generic_artifact(artifact)? {
artifacts.generic.push(artifact);
continue;
}
if let Some(font) = parse_font_artifact(artifact) {
artifacts.fonts.push(font);
continue;
}
if let Some(completion) = parse_completion_artifact(artifact)? {
artifacts.completions.push(completion);
continue;
}
if let Some(generated) = parse_generated_completion_artifact(artifact)? {
artifacts.generated_completions.push(generated);
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.tokenView on GitHub (pinned to 6f52dcdf99)
Solutions
- Check which artifact type is named in the message and confirm mise's currently supported set (apps, binaries, pkgs, installers, fonts, completions, command wrappers, generic artifacts).
- Update mise — newer releases add artifact support over time; re-run the install after upgrading.
- If the unsupported artifact is essential (a VST plugin must go to ~/Library/Audio/Plug-Ins), install that cask with real Homebrew instead of mise.
- Choose an equivalent cask whose payload uses supported artifact types when one exists.
Defensive patterns
Strategy: type-guard
Validate before calling
# filter casks by supported artifact kinds before adding them
SUPPORTED='{app,binary,pkg,installer,font,completion,generic}'
UNSUPPORTED=$(jq -r '[.artifacts[] | keys[]] | unique | map(select(. as $k | ["app","binary","pkg","installer","font","completion"] | index($k) | not)) | join(", ")' cask.json)
[ -z "$UNSUPPORTED" ] || echo "skip: unsupported artifacts $UNSUPPORTED" Type guard
const SUPPORTED = new Set(["app","binary","pkg","installer","font","completion","uninstall","preflight","postflight"]);
function hasSupportedArtifacts(cask) {
return (cask.artifacts ?? []).some(a => Object.keys(a).some(k => SUPPORTED.has(k)));
} Prevention
- Pre-check a cask's artifact keys against mise's supported set before adding it to mise.toml.
- Keep mise updated when Homebrew adds new artifact kinds.
- Use real Homebrew for plugin-type casks (VST/AU/screensaver) by design.
When it happens
Trigger: Installing a brew-cask whose 'artifacts' include kinds mise does not implement: e.g. stage_only-only casks plus plugin types like audio_unit_plugin, vst_plugin, vst3_plugin, screen_saver, input_method, dictionary, mdimporter, colorpicker, suite, or a newly introduced Homebrew artifact key from a schema update.
Common situations: Audio plugins (VST/AU), screensavers, and input methods are the classic non-app artifact casks; Homebrew occasionally adds new artifact keys that mise has not caught up with; older mise versions fail on artifact types added in later Homebrew schema revisions.
Related errors
- brew-cask:{}: no supported install artifact found
- brew-cask: pkg installer choices are not supported yet
- brew-cask:{}: unsupported {kind} step type {}
- brew-cask: completion executable '{}' is ambiguous: {}
- brew-cask: failed to generate {} completions from {}: {}
AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22).
Data as JSON: /api/errors/985ce33ae66a6e02.
Report an issue: GitHub.