zed-industries/zed · error · anyhow::Error
LanguageModelCompletionError::from_provider_response(provide
Error message
LanguageModelCompletionError::from_provider_response(provider_name, None, error.code.or(error.error_type), error.message, None, category)
What it means
Error-path mapping inside the OpenAI streaming response handler: the SSE stream produced an error payload (or error frame), and the code converts it into LanguageModelCompletionError::from_provider_response with the provider name, error code/type, message, and a category. This is a translation of a provider-reported stream error into Zed's unified language-model completion error, not a local failure; provider_name and possibly the rate-limit category are attached so callers can display or retry appropriately.
Source
Thrown at crates/open_ai/src/open_ai.rs:1117
Ok(events
.filter_map(move |event| {
let provider_name = provider_name.clone();
async move {
let value = match event {
Ok(ChatCompletionStreamEvent::Data(value)) => value,
Ok(ChatCompletionStreamEvent::Done) => return None,
Err(error) => return Some(Err(anyhow!(error))),
};
match serde_json::from_str::<ResponseStreamResult>(value.get()) {
Ok(ResponseStreamResult::Ok(response)) => Some(Ok(response)),
Ok(ResponseStreamResult::Err { error }) => {
let category = completion::response_error_category(
error.code.as_deref(),
error.error_type.as_deref(),
None,
&error.message,
);
Some(Err(anyhow!(
language_model_core::LanguageModelCompletionError::from_provider_response(
provider_name,
None,
error.code.or(error.error_type),
error.message,
None,
category,
)
)))
}
Err(error) => {
log::error!(
"Failed to parse OpenAI response into ResponseStreamResult: `{}`\n\
Response: `{}`",
error,
value,
);
Some(Err(anyhow!(error)))View on GitHub (pinned to 5a9b9558db)
Solutions
- Read the embedded provider message and error code to determine the cause (auth failure, quota exhaustion, overloaded provider, malformed request)
- Map the category: for rate-limit or overloaded categories, retry the request with backoff or offer model fallback
- Verify the API key and that the request payload (model name, parameters) is accepted by the OpenAI-compatible endpoint
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at crates/open_ai/src/open_ai.rs:1117 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@5a9b9558db (2026-09-05).
Data as JSON: /api/errors/475f6dda747ed7e9.
Report an issue: GitHub.