diff --git a/src-tauri/src/proxy/handlers/gemini.rs b/src-tauri/src/proxy/handlers/gemini.rs index 9fa2c2a33..77c7c0e73 100644 --- a/src-tauri/src/proxy/handlers/gemini.rs +++ b/src-tauri/src/proxy/handlers/gemini.rs @@ -343,7 +343,13 @@ pub async fn handle_generate( Some(Ok(b)) => b, Some(Err(e)) => { error!("[Gemini-SSE] Connection error: {}", e); - yield Err(format!("Stream error: {}", e)); + let error_json = serde_json::json!({ + "error": { + "message": format!("Stream error: {}", e), + "type": "stream_error" + } + }); + yield Ok::(Bytes::from(format!("data: {}\n\n", error_json))); break; } None => break, diff --git a/src-tauri/src/proxy/mappers/claude/mod.rs b/src-tauri/src/proxy/mappers/claude/mod.rs index 9ae853006..c90c04589 100644 --- a/src-tauri/src/proxy/mappers/claude/mod.rs +++ b/src-tauri/src/proxy/mappers/claude/mod.rs @@ -82,7 +82,13 @@ where } } Err(e) => { - yield Err(format!("Stream error: {}", e)); + let error_json = serde_json::json!({ + "error": { + "message": format!("Stream error: {}", e), + "type": "stream_error" + } + }); + yield Ok::(Bytes::from(format!("data: {}\n\n", error_json))); break; } }