From 066e77a378025493ce5fc1290fad87902a3d3681 Mon Sep 17 00:00:00 2001 From: "Victor A." <52110451+cs50victor@users.noreply.github.com> Date: Tue, 3 Jun 2025 16:37:06 -0700 Subject: [PATCH] refactor: enhance error message --- async-openai/src/error.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/async-openai/src/error.rs b/async-openai/src/error.rs index eea51c10..bb8e7ba8 100644 --- a/async-openai/src/error.rs +++ b/async-openai/src/error.rs @@ -1,5 +1,5 @@ //! Errors originating from API calls, parsing responses, and reading-or-writing to the file system. -use serde::Deserialize; +use serde::{de::Error, Deserialize}; #[derive(Debug, thiserror::Error)] pub enum OpenAIError { @@ -68,9 +68,15 @@ pub(crate) struct WrappedError { } pub(crate) fn map_deserialization_error(e: serde_json::Error, bytes: &[u8]) -> OpenAIError { + let json_content = String::from_utf8_lossy(bytes); tracing::error!( "failed deserialization of: {}", - String::from_utf8_lossy(bytes) + json_content ); - OpenAIError::JSONDeserialize(e) + + // Create a custom error that includes the JSON content + let enhanced_error = serde_json::Error::custom(format!( + "{e} | JSON content: {json_content}")); + + OpenAIError::JSONDeserialize(enhanced_error) }