diff --git a/crates/meilisearch/src/routes/chat.rs b/crates/meilisearch/src/routes/chat.rs index 733b8ff65..5ddcb6088 100644 --- a/crates/meilisearch/src/routes/chat.rs +++ b/crates/meilisearch/src/routes/chat.rs @@ -400,13 +400,21 @@ async fn streamed_chat( } } Err(err) => { - // writeln!(lock, "error: {err}").unwrap(); tracing::error!("{err:?}"); + if let Err(SendError(_)) = tx.send(Event::Data(sse::Data::new_json(&json!({ + "object": "chat.completion.error", + "tool": err.to_string(), + })).unwrap())).await { + return; + } + break 'main; } } } } + + let _ = tx.send(Event::Data(sse::Data::new("[DONE]"))); }); Sse::from_infallible_receiver(rx).with_retry_duration(Duration::from_secs(10))