{"record":{"id":"4bb5eb05b05f7cee","repo":"jdx/mise","slug":"no-asset-released","errorCode":null,"errorMessage":"no asset released","messagePattern":"no asset released","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/backend/aqua.rs","lineNumber":5000,"sourceCode":"    if let Some(\"github_tag\") = pkg.version_source.as_deref() {\n        // Tags don't have created_at timestamps or a prerelease flag\n        let versions = github::list_tags(&format!(\"{}/{}\", pkg.repo_owner, pkg.repo_name)).await?;\n        return Ok(versions.into_iter().map(|v| (v, None, None)).collect());\n    }\n    let repo = format!(\"{}/{}\", pkg.repo_owner, pkg.repo_name);\n    let releases = github::list_releases_including_prereleases(&repo).await?;\n    Ok(releases\n        .into_iter()\n        .map(|r| {\n            let released_at = r.released_at().to_string();\n            (r.tag_name, Some(released_at), Some(r.prerelease))\n        })\n        .collect())\n}\n\nfn validate(pkg: &AquaPackage, version: &str) -> Result<()> {\n    if pkg.no_asset.unwrap_or(false) {\n        bail!(\"no asset released\");\n    }\n    if let Some(message) = &pkg.error_message {\n        bail!(\"{}\", message);\n    }\n    if !is_platform_supported(&pkg.supported_envs, os(), arch()) {\n        bail!(\n            \"unsupported env: {}/{} (supported: {:?})\",\n            os(),\n            arch(),\n            pkg.supported_envs\n        );\n    }\n    match pkg.package_type() {\n        AquaPackageType::Cargo => {\n            bail!(\n                \"package type `cargo` is not supported in the aqua backend. Use the cargo backend instead{}.\",\n                pkg.crate_name\n                    .as_deref()","sourceCodeStart":4982,"sourceCodeEnd":5018,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/backend/aqua.rs#L4982-L5018","documentation":"The aqua registry can mark a package as having no released assets via `no_asset: true`. validate() checks this before attempting any install and bails with 'no asset released', meaning the registry entry itself declares that no downloadable asset exists for this package.","triggerScenarios":"Running `mise install`/`mise use` for an aqua-registered tool whose AquaPackage has no_asset=true (src/backend/aqua.rs:5000), regardless of requested version or platform.","commonSituations":"The upstream project stopped shipping binaries (source-only releases); the registry entry was added preemptively before any release; the tool was renamed or retired.","solutions":["Install the tool via a different backend (source build: cargo, go, npm, etc.)","Pin a version that predates the no_asset declaration if binaries existed earlier","Check the upstream project's releases to confirm no binaries are published","Update the aqua registry entry or file an issue upstream to publish release assets"],"exampleFix":"// before\n[tools]\naqua:owner/source-only-tool = \"latest\"\n\n// after — build from source instead\n[tools]\ncargo:source-only-tool = \"latest\"","handlingStrategy":"fallback","validationCode":"// check the package declares releasable assets before using aqua:\nconst pkg = await fetchAquaRegistryEntry(pkgName);\nif (pkg.no_asset === true) {\n  console.warn(`${pkgName} declares no_asset; use a source-build backend`);\n}","typeGuard":null,"tryCatchPattern":"try {\n  await $`mise use aqua:owner/repo`;\n} catch (e) {\n  if (String(e).includes(\"no asset released\")) {\n    await $`mise use cargo:${crateName}`; // build from source instead\n  } else throw e;\n}","preventionTips":["Check the upstream project's GitHub releases page for actual binaries before pinning via aqua","Prefer source-build backends (cargo:, go:, npm:) for projects that don't publish release artifacts","Pin versions known to ship binaries when a project stopped releasing them"],"tags":["aqua","release","no-assets"],"backgroundTag":"resource-not-found","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}