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

  1. Use the go backend package shown in the error message, e.g. `mise use go:github.com/owner/repo` instead of the aqua: package.
  2. Install Go first (`mise use go`) so the go backend can build the module.
  3. 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

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


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/dcd4385edd177ac2. Report an issue: GitHub.