From beff6adeb1e49bfc5be7bdf99d59defb782e5271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Renault?= Date: Tue, 20 May 2025 17:55:21 +0200 Subject: [PATCH] Catch invalid argument calls to search function --- crates/meilisearch/src/routes/chat.rs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/crates/meilisearch/src/routes/chat.rs b/crates/meilisearch/src/routes/chat.rs index f794ba19c..0dc54b37d 100644 --- a/crates/meilisearch/src/routes/chat.rs +++ b/crates/meilisearch/src/routes/chat.rs @@ -398,18 +398,17 @@ async fn streamed_chat( return; } - let SearchInIndexParameters { index_uid, q } = - serde_json::from_str(&call.function.arguments).unwrap(); - - let result = process_search_request( - &index_scheduler, - auth_ctrl.clone(), - &search_queue, - &auth_token, - index_uid, - q, - ) - .await; + let result = match serde_json::from_str(&call.function.arguments) { + Ok(SearchInIndexParameters { index_uid, q }) => process_search_request( + &index_scheduler, + auth_ctrl.clone(), + &search_queue, + &auth_token, + index_uid, + q, + ).await.map_err(|e| e.to_string()), + Err(err) => Err(err.to_string()), + }; let is_error = result.is_err(); let text = match result {