{"record":{"id":"3795c69a196eb8ad","repo":"zed-industries/zed","slug":"download-failed-with-status-3795c6","errorCode":null,"errorMessage":"download failed with status {}","messagePattern":"download failed with status (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/extension_host/src/wasm_host/wit/since_v0_1_0.rs","lineNumber":531,"sourceCode":"            status,\n        );\n\n        Ok(())\n    }\n\n    async fn download_file(\n        &mut self,\n        url: String,\n        path: String,\n        file_type: DownloadedFileType,\n    ) -> wasmtime::Result<Result<(), String>> {\n        maybe!(async {\n            let path = PathBuf::from(path);\n            let extension_work_dir = self.host.work_dir.join(self.manifest.id.as_ref());\n\n            self.host.fs.create_dir(&extension_work_dir).await?;\n\n            let destination_path = self\n                .host\n                .writeable_path_from_extension(&self.manifest.id, &path)\n                .await?;\n\n            let mut response = self\n                .host\n                .http_client\n                .get(&url, Default::default(), true)\n                .await\n                .context(\"downloading release\")?;\n\n            anyhow::ensure!(\n                response.status().is_success(),\n                \"download failed with status {}\",\n                response.status()\n            );\n            let mut body = BufReader::new(response.body_mut());\n","sourceCodeStart":513,"sourceCodeEnd":549,"githubUrl":"https://github.com/zed-industries/zed/blob/5a9b9558db01a6b906cec2fb70a797affdc58cdd/crates/extension_host/src/wasm_host/wit/since_v0_1_0.rs#L513-L549","documentation":"An extension-initiated file download returned a non-success HTTP status after the request itself succeeded (context 'downloading release'). The ensure! guard rejects any non-2xx status ({status}), so the file at the URL is not saved; common causes are a missing release asset (404) or rate-limiting (429) on the extension's download URL.","triggerScenarios":"Thrown at crates/extension_host/src/wasm_host/wit/since_v0_1_0.rs:529 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the download URL points at an asset that actually exists (404 is the most common cause)","Retry with backoff for transient failures such as 429/5xx","Include the status code in user-facing logs so extension authors can diagnose asset hosting issues"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5a9b9558db01a6b906cec2fb70a797affdc58cdd","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}