{"record":{"id":"cbe0810184dcebb4","repo":"zed-industries/zed","slug":"failed-to-open-llama-cpp-model-event-stream","errorCode":null,"errorMessage":"Failed to open llama.cpp model event stream: {} {}","messagePattern":"Failed to open llama\\.cpp model event stream: (.+?) (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/llama_cpp/src/llama_cpp.rs","lineNumber":599,"sourceCode":"    api_key: Option<&str>,\n    extra_headers: &CustomHeaders,\n) -> Result<BoxStream<'static, Result<ModelEvent>>> {\n    let uri = format!(\"{api_url}/models/sse\");\n    let request = HttpRequest::builder()\n        .method(Method::GET)\n        .uri(uri)\n        .header(\"Accept\", \"text/event-stream\")\n        .when_some(api_key, |builder, api_key| {\n            builder.header(\"Authorization\", format!(\"Bearer {api_key}\"))\n        })\n        .extra_headers(extra_headers)\n        .body(AsyncBody::default())?;\n\n    let mut response = client.send(request).await?;\n    if !response.status().is_success() {\n        let mut body = String::new();\n        response.body_mut().read_to_string(&mut body).await?;\n        anyhow::bail!(\n            \"Failed to open llama.cpp model event stream: {} {}\",\n            response.status(),\n            body,\n        );\n    }\n\n    let reader = BufReader::new(response.into_body());\n    Ok(reader\n        .lines()\n        .filter_map(|line| async move {\n            // Each event is a single `data:` line carrying the JSON envelope;\n            // other SSE lines (comments, blank separators) are ignored.\n            let line = line.ok()?;\n            let payload = line.strip_prefix(\"data:\")?.trim_start();\n            Some(serde_json::from_str::<ModelEvent>(payload).map_err(|error| anyhow!(error)))\n        })\n        .boxed())\n}","sourceCodeStart":581,"sourceCodeEnd":617,"githubUrl":"https://github.com/zed-industries/zed/blob/5a9b9558db01a6b906cec2fb70a797affdc58cdd/crates/llama_cpp/src/llama_cpp.rs#L581-L617","documentation":"Raised when the SSE request to {api_url}/models/sse returns a non-success status, so the model event stream cannot be opened. Means the llama.cpp server is unreachable, misconfigured, or rejected authentication.","triggerScenarios":"Thrown at crates/llama_cpp/src/llama_cpp.rs:653 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Confirm the llama.cpp server is running and its API URL is correct","Check the API key/Authorization header configuration","Retry if the server was momentarily unavailable"],"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-14T00:17:10.932Z"}