diff options
| author | sigoden <sigoden@gmail.com> | 2024-04-18 22:58:34 +0000 |
|---|---|---|
| committer | sigoden <sigoden@gmail.com> | 2024-04-19 02:42:05 +0000 |
| commit | a0b4f344ee003dd9d1af19105d93f4914efdd520 (patch) | |
| tree | a264e5e3eae2bcc171ed9702df07461c7ce74a24 /src/client/claude.rs | |
| parent | 13bd2fe29912c2141a24d953204fd6fb28cfa8d8 (diff) | |
| download | aichat-a0b4f344ee003dd9d1af19105d93f4914efdd520.tar.gz | |
refactor: improve error message for some clients
Diffstat (limited to 'src/client/claude.rs')
| -rw-r--r-- | src/client/claude.rs | 12 |
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); |
