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.token

View on GitHub (pinned to 6f52dcdf99)

Solutions

  1. 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).
  2. Update mise — newer releases add artifact support over time; re-run the install after upgrading.
  3. 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.
  4. 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

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


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