@@ -210,7 +210,20 @@ async fn handler(
210210 } ;
211211
212212 let mut all_messages = messages. clone ( ) ;
213- let session_path = session:: get_path ( session:: Identifier :: Name ( session_id. clone ( ) ) ) ;
213+ let session_path = match session:: get_path ( session:: Identifier :: Name ( session_id. clone ( ) ) ) {
214+ Ok ( path) => path,
215+ Err ( e) => {
216+ tracing:: error!( "Failed to get session path: {}" , e) ;
217+ let _ = stream_event (
218+ MessageEvent :: Error {
219+ error : format ! ( "Failed to get session path: {}" , e) ,
220+ } ,
221+ & tx,
222+ )
223+ . await ;
224+ return ;
225+ }
226+ } ;
214227
215228 loop {
216229 tokio:: select! {
@@ -390,13 +403,21 @@ async fn ask_handler(
390403 all_messages. push ( response_message) ;
391404 }
392405
393- let session_path = session:: get_path ( session:: Identifier :: Name ( session_id. clone ( ) ) ) ;
406+ let session_path = match session:: get_path ( session:: Identifier :: Name ( session_id. clone ( ) ) ) {
407+ Ok ( path) => path,
408+ Err ( e) => {
409+ tracing:: error!( "Failed to get session path: {}" , e) ;
410+ return Err ( StatusCode :: INTERNAL_SERVER_ERROR ) ;
411+ }
412+ } ;
394413
395- let session_path = session_path. clone ( ) ;
414+ let session_path_clone = session_path. clone ( ) ;
396415 let messages = all_messages. clone ( ) ;
397416 let provider = Arc :: clone ( provider. as_ref ( ) . unwrap ( ) ) ;
398417 tokio:: spawn ( async move {
399- if let Err ( e) = session:: persist_messages ( & session_path, & messages, Some ( provider) ) . await {
418+ if let Err ( e) =
419+ session:: persist_messages ( & session_path_clone, & messages, Some ( provider) ) . await
420+ {
400421 tracing:: error!( "Failed to store session history: {:?}" , e) ;
401422 }
402423 } ) ;
0 commit comments