{"record":{"id":"40fa833c96b7556e","repo":"zed-industries/zed","slug":"error-performing-web-search-status-status-bo","errorCode":null,"errorMessage":"error performing web search.\nStatus: {status:?}\nBody: {body}","messagePattern":"error performing web search\\.\nStatus: (.+?)\nBody: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/web_search_providers/src/cloud.rs","lineNumber":95,"sourceCode":"        .authenticated_llm_request(&llm_api_token, organization_id, |token| {\n            Ok(http_client::Request::builder()\n                .method(Method::POST)\n                .uri(url.as_ref())\n                .header(\"Content-Type\", \"application/json\")\n                .header(\"Authorization\", format!(\"Bearer {token}\"))\n                .body(body.clone().into())?)\n        })\n        .await?;\n\n    if response.status().is_success() {\n        let mut body = String::new();\n        response.body_mut().read_to_string(&mut body).await?;\n        Ok(serde_json::from_str(&body)?)\n    } else {\n        let status = response.status();\n        let mut body = String::new();\n        response.body_mut().read_to_string(&mut body).await?;\n        anyhow::bail!(\"error performing web search.\\nStatus: {status:?}\\nBody: {body}\");\n    }\n}\n","sourceCodeStart":77,"sourceCodeEnd":98,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/web_search_providers/src/cloud.rs#L77-L98","documentation":"Sentinel error raised in perform_web_search after the authenticated LLM API request returns a non-success HTTP status; it wraps the raw status code and response body so callers can see why the backend rejected the search request (auth failure, bad organization id, upstream outage, malformed request).","triggerScenarios":"Thrown at crates/web_search_providers/src/cloud.rs:95 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the Status field: 401/403 indicate an expired or invalid llm_api_token, re-authenticate before retrying","404/422 usually mean an invalid organization_id or unsupported endpoint; verify the organization id and request payload","5xx errors are transient server-side failures; retry with backoff","Check the Body field for provider-specific error messages with actionable details"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}