From 3f4098e87b4130cf56c4087c4d8e1ab05b1c506a Mon Sep 17 00:00:00 2001 From: Umesh Yadav <23421535+imumesh18@users.noreply.github.com> Date: Sat, 28 Jun 2025 18:08:27 +0530 Subject: [PATCH] open_ai: Make OpenAI error message generic (#33383) Context: In this PR: https://github.com/zed-industries/zed/pull/33362, we started to use underlying open_ai crate for making api calls for vercel as well. Now whenever we get the error we get something like the below. Where on part of the error mentions OpenAI but the rest of the error returns the actual error from provider. This PR tries to make the error generic for now so that people don't get confused seeing OpenAI in their v0 integration. ``` Error interacting with language model Failed to connect to OpenAI API: 403 Forbidden {"success":false,"error":"Premium or Team plan required to access the v0 API: https://v0.dev/chat/settings/billing"} ``` Release Notes: - N/A --- crates/language_models/src/provider/lmstudio.rs | 2 +- crates/open_ai/src/open_ai.rs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/language_models/src/provider/lmstudio.rs b/crates/language_models/src/provider/lmstudio.rs index e0fcf38f38..519647b3bc 100644 --- a/crates/language_models/src/provider/lmstudio.rs +++ b/crates/language_models/src/provider/lmstudio.rs @@ -565,7 +565,7 @@ impl LmStudioEventMapper { events.push(Ok(LanguageModelCompletionEvent::Stop(StopReason::ToolUse))); } Some(stop_reason) => { - log::error!("Unexpected OpenAI stop_reason: {stop_reason:?}",); + log::error!("Unexpected LMStudio stop_reason: {stop_reason:?}",); events.push(Ok(LanguageModelCompletionEvent::Stop(StopReason::EndTurn))); } None => {} diff --git a/crates/open_ai/src/open_ai.rs b/crates/open_ai/src/open_ai.rs index 5b09aa5cbc..12a5cf52d2 100644 --- a/crates/open_ai/src/open_ai.rs +++ b/crates/open_ai/src/open_ai.rs @@ -445,12 +445,14 @@ pub async fn stream_completion( match serde_json::from_str::(&body) { Ok(response) if !response.error.message.is_empty() => Err(anyhow!( - "Failed to connect to OpenAI API: {}", + "API request to {} failed: {}", + api_url, response.error.message, )), _ => anyhow::bail!( - "Failed to connect to OpenAI API: {} {}", + "API request to {} failed with status {}: {}", + api_url, response.status(), body, ),