summaryrefslogtreecommitdiffstats
path: root/src/client/claude.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-04-18 22:58:34 +0000
committersigoden <sigoden@gmail.com>2024-04-19 02:42:05 +0000
commita0b4f344ee003dd9d1af19105d93f4914efdd520 (patch)
treea264e5e3eae2bcc171ed9702df07461c7ce74a24 /src/client/claude.rs
parent13bd2fe29912c2141a24d953204fd6fb28cfa8d8 (diff)
downloadaichat-a0b4f344ee003dd9d1af19105d93f4914efdd520.tar.gz
refactor: improve error message for some clients
Diffstat (limited to 'src/client/claude.rs')
-rw-r--r--src/client/claude.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/client/claude.rs b/src/client/claude.rs
index 91ed163..7a4dd36 100644
--- a/src/client/claude.rs
+++ b/src/client/claude.rs
@@ -118,13 +118,19 @@ async fn send_message_streaming(builder: RequestBuilder, handler: &mut ReplyHand
match err {
EventSourceError::StreamEnded => {}
EventSourceError::InvalidStatusCode(code, res) => {
- let data: Value = res.json().await?;
+ let text = res.text().await?;
+ let data: Value = match text.parse() {
+ Ok(data) => data,
+ Err(_) => {
+ bail!("Request failed, {code}, {text}");
+ }
+ };
check_error(&data)?;
- bail!("Invalid status code: {code}");
+ bail!("Request failed, {code}, {text}");
}
EventSourceError::InvalidContentType(_, res) => {
let text = res.text().await?;
- bail!("The endpoint is invalid as the response content-type is not 'text/event-stream', {text}");
+ bail!("The API server should return data as 'text/event-stream', but it isn't. Check the client config. {text}");
}
_ => {
bail!("{}", err);