jdx/mise · error
package type `go_install` is not supported in the aqua backe
Error message
package type `go_install` is not supported in the aqua backend. Use the go backend instead: {backend}. What it means
mise's aqua backend only supports aqua package types it can install directly (release-archive assets, etc.). When a registry package declares `go_install` — meaning the tool should be built via `go install` — the aqua backend refuses and tells you the equivalent go-backend package string to use instead, so the build happens through mise's go backend which has the Go toolchain integration.
Source
Thrown at src/backend/aqua.rs:5031
match pkg.package_type() {
AquaPackageType::Cargo => {
bail!(
"package type `cargo` is not supported in the aqua backend. Use the cargo backend instead{}.",
pkg.crate_name
.as_deref()
.filter(|name| !name.is_empty())
.or_else(|| {
pkg.name
.as_deref()
.and_then(|s| s.strip_prefix("crates.io/"))
})
.map(|name| format!(": cargo:{}", name.escape_debug()))
.unwrap_or_default()
)
}
AquaPackageType::GoInstall => {
let backend = go_install_backend(pkg, version)?;
bail!(
"package type `go_install` is not supported in the aqua backend. Use the go backend instead: {backend}."
)
}
AquaPackageType::GoBuild => {
bail!(
"package type `{}` is not supported in the aqua backend. Use the go backend instead{}.",
pkg.package_type(),
pkg.path
.as_ref()
.map(|path| format!(": go:{path}"))
.unwrap_or_else(|| {
format!(": go:github.com/{}/{}", pkg.repo_owner, pkg.repo_name)
})
)
}
_ => {}
}
Ok(())View on GitHub (pinned to afd2eddd3a)
Solutions
- Use the go backend package shown in the error message, e.g. `mise use go:github.com/owner/repo` instead of the aqua: package.
- Install Go first (`mise use go`) so the go backend can build the module.
- If a prebuilt binary release exists for the tool, pin the aqua package to the release-asset type instead of go_install.
Example fix
// before mise use aqua:github.com/owner/tool // after mise use go:github.com/owner/tool
Defensive patterns
Strategy: validation
Validate before calling
type=$(mise registry ls 2>/dev/null | grep '^aqua:' ) # or inspect the aqua package type first # guard in config: refuse aqua: refs whose package type is go_install [[ "$type" == *go_install* ]] && echo 'use go: backend instead' && exit 1
Try / catch
if ! mise use "$pkg"; then
echo "aqua backend rejected package; retrying with go backend"
mise use "go:${pkg#aqua:}"
fi Prevention
- Check the aqua registry entry's package type before referencing it via aqua: in mise.
- Prefer go: for Go modules and aqua: only for tools with prebuilt release assets.
- Keep the go toolchain installed so go:-type installs never fail on a missing toolchain.
When it happens
Trigger: Running `mise use`/`mise install` for a tool whose aqua registry entry has `type: go_install` in its package definition; the error fires in the aqua backend's install/version resolution match on AquaPackageType::GoInstall.
Common situations: Adding an aqua registry package that is a Go module rather than a prebuilt binary; copying an aqua.yaml package reference into mise that relied on aqua's own `go install` support.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- package type `{}` is not supported in the aqua backend. Use
- unsupported aqua package type: {t}
- package type `cargo` is not supported in the aqua backend. U
- Go workspace module {} is missing {GO_MOD}
- unexpected character: {}
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/dcd4385edd177ac2.
Report an issue: GitHub.