{"record":{"id":"e20b3604e7881a97","repo":"jdx/mise","slug":"brew-cask-no-supported-install-artifact-found","errorCode":null,"errorMessage":"brew-cask:{}: no supported install artifact found","messagePattern":"brew-cask:(.+?): no supported install artifact found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/system/packages/brew/cask.rs","lineNumber":5012,"sourceCode":"            continue;\n        }\n        bail!(\n            \"brew-cask:{}: unsupported artifact type {}\",\n            cask.token,\n            artifact_type\n        );\n    }\n    if artifacts.apps.is_empty()\n        && artifacts.binaries.is_empty()\n        && artifacts.command_wrappers.is_empty()\n        && artifacts.pkgs.is_empty()\n        && artifacts.installers.is_empty()\n        && artifacts.generic.is_empty()\n        && artifacts.fonts.is_empty()\n        && artifacts.completions.is_empty()\n        && artifacts.generated_completions.is_empty()\n    {\n        bail!(\n            \"brew-cask:{}: no supported install artifact found\",\n            cask.token\n        );\n    }\n    artifacts.pkg_ids.sort();\n    artifacts.pkg_ids.dedup();\n    if artifacts.pkgs.is_empty() {\n        artifacts.pkg_ids.clear();\n    } else if artifacts.pkg_ids.is_empty() {\n        bail!(\n            \"brew-cask:{}: pkg artifacts require pkgutil ids in uninstall metadata\",\n            cask.token\n        );\n    }\n    Ok(artifacts)\n}\n\nfn validate_platform_support(cask: &Cask, artifacts: &CaskArtifacts) -> Result<()> {","sourceCodeStart":4994,"sourceCodeEnd":5030,"githubUrl":"https://github.com/jdx/mise/blob/6f52dcdf99e282ef7a7db68c81301fa4618d0f79/src/system/packages/brew/cask.rs#L4994-L5030","documentation":"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).","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"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'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["brew-cask","artifacts","stage-only","mise"],"backgroundTag":"no-installable-artifacts","analyzedSha":"6f52dcdf99e282ef7a7db68c81301fa4618d0f79","analyzedAt":"2026-08-22T10:14:23.840Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}