{"record":{"id":"55919400ae21d48e","repo":"astrid-runtime/astrid","slug":"no-github-release-found-for-version-version-in","errorCode":null,"errorMessage":"no GitHub release found for version {version} in {org}/{repo}","messagePattern":"no GitHub release found for version (.+?) in (.+?)/(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/astrid-cli/src/commands/capsule/install_github.rs","lineNumber":83,"sourceCode":"                continue;\n            }\n            if !response.status().is_success() {\n                bail!(\n                    \"GitHub API error querying release tag {candidate} for {org}/{repo}: HTTP {}\",\n                    response.status()\n                );\n            }\n            let json = response\n                .json::<serde_json::Value>()\n                .await\n                .with_context(|| format!(\"invalid GitHub API response for tag {candidate}\"))?;\n            return Ok(json\n                .get(\"tag_name\")\n                .and_then(serde_json::Value::as_str)\n                .unwrap_or(&candidate)\n                .to_string());\n        }\n        bail!(\"no GitHub release found for version {version} in {org}/{repo}\");\n    }\n\n    tracing::debug!(%org, %repo, \"no version/tag pin — resolving latest release\");\n    let api_url = format!(\"https://api.github.com/repos/{org}/{repo}/releases/latest\");\n    let response = client\n        .get(&api_url)\n        .send()\n        .await\n        .context(\"failed to reach GitHub API for latest release\")?;\n    if !response.status().is_success() {\n        bail!(\n            \"GitHub API returned {} for {org}/{repo} latest release\",\n            response.status()\n        );\n    }\n    let json: serde_json::Value = response\n        .json()\n        .await","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/astrid-runtime/astrid/blob/affd8760f44190dbdfbec23403f4c4b642c33112/crates/astrid-cli/src/commands/capsule/install_github.rs#L65-L101","documentation":"When a specific version is requested, resolve_github_ref walks candidate tags; if all candidates return 404 from the GitHub releases API, it concludes no release matches the requested version and bails with this error.","triggerScenarios":"install_from_github or resolve_capsule_to_file passes version X to resolve_github_ref, and every candidate tag (e.g. \"1.2.3\", \"v1.2.3\") yields HTTP 404 on repos/{org}/{repo}/releases/tags/{candidate}.","commonSituations":"Requesting a version that was never released; the repo publishes tags but not GitHub releases (tag exists, release does not); typo in the version string; the release was deleted or converted to draft.","solutions":["List the repo's releases (`gh release list -R org/repo`) and pin an existing version.","Check whether the repo actually creates GitHub Releases rather than only git tags; if it only tags, use a tag/branch ref instead of a version.","Fix typos in the version string, and check v-prefix conventions (1.2.3 vs v1.2.3).","If the release should exist, verify it is not a draft and that you have access to it."],"exampleFix":"// before\nastrid capsule install github:org/repo@0.9.1   # release never published\n// after\ngh release list -R org/repo   # find real version\nastrid capsule install github:org/repo@0.9.0","handlingStrategy":"validation","validationCode":"// check the release exists before pinning it\ngh release view 1.2.3 -R org/repo >/dev/null 2>&1 || echo \"release missing\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["List available releases (`gh release list`) before pinning a version.","Remember releases vs tags: the resolver matches GitHub Releases, not bare git tags.","Watch v-prefix conventions on tag names when specifying versions."],"tags":["github","release","not-found","version-pinning"],"backgroundTag":"resource-not-found","analyzedSha":"affd8760f44190dbdfbec23403f4c4b642c33112","analyzedAt":"2026-09-09T21:28:12.402Z","contentChangedAt":"2026-09-09T21:28:12.402Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}