Kuberwastaken/claurst · error
Download failed: HTTP
Error message
Download failed: HTTP {} for {}
Check that this version exists in the releases page. What it means
The release asset download (archive for the detected target) returned a non-success HTTP status. Usually 404 because the requested version tag has no matching asset for this target; the message's second placeholder is the asset URL that failed.
Solutions
- Verify the version exists on the GitHub releases page and has an asset for your target
- Omit --version to upgrade to latest, which always has assets
- Check for target naming mismatches (e.g. macos-aarch64 vs darwin-arm64) on the releases page
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src-rust/crates/cli/src/upgrade.rs:211 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Kuberwastaken/claurst@b0637c97ec (2026-09-10).
Data as JSON: /api/errors/1b204dd41ca0f1bc.
Report an issue: GitHub.
Appendix: source
Thrown at src-rust/crates/cli/src/upgrade.rs:211
let tag = json
.get("tag_name")
.and_then(|v| v.as_str())
.ok_or_else(|| anyhow!("no tag_name in GitHub API response"))?;
Ok(tag.trim_start_matches('v').to_string())
}
// ---------------------------------------------------------------------------
// Download
// ---------------------------------------------------------------------------
async fn download_to_file(url: &str, dest: &Path) -> Result<()> {
let client = reqwest::Client::builder()
.timeout(Duration::from_secs(120))
.user_agent(format!("claurst-upgrade/{}", env!("CARGO_PKG_VERSION")))
.build()?;
let resp = client.get(url).send().await?;
if !resp.status().is_success() {
bail!(
"Download failed: HTTP {} for {}\n\
Check that this version exists in the releases page.",
resp.status(),
url
);
}
let bytes = resp.bytes().await?;
std::fs::write(dest, &bytes)?;
Ok(())
}
// ---------------------------------------------------------------------------
// Extraction (shells out — tar is on every modern system, including Windows 10+)
// ---------------------------------------------------------------------------
fn extract_archive(archive: &Path, dest: &Path, is_zip: bool) -> Result<()> {
if is_zip {
// Windows: prefer PowerShell Expand-Archive; fall back to tar -xf.View on GitHub (pinned to b0637c97ec)