From 24a898c9a7286f2d97fd6fff9811f3ce06e6762b Mon Sep 17 00:00:00 2001 From: hobokenchicken Date: Wed, 18 Mar 2026 15:39:18 +0000 Subject: [PATCH] fix(openai): gracefully handle stream endings - The Responses API ends streams without a final '[DONE]' message. - This causes reqwest_eventsource to return Error::StreamEnded. - Previously, this was treated as a premature termination, triggering an error probe. - We now explicitly match and break on Err(StreamEnded) for normal completion. --- src/providers/openai.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/providers/openai.rs b/src/providers/openai.rs index f554f424..d1cc139f 100644 --- a/src/providers/openai.rs +++ b/src/providers/openai.rs @@ -524,6 +524,7 @@ impl super::Provider for OpenAIProvider { } } Ok(_) => continue, + Err(reqwest_eventsource::Error::StreamEnded) => break, Err(e) => { // Attempt to probe for the actual error body let probe_resp = probe_client @@ -887,6 +888,7 @@ impl super::Provider for OpenAIProvider { } } Ok(_) => continue, + Err(reqwest_eventsource::Error::StreamEnded) => break, Err(e) => { // Attempt to probe for the actual error body let probe_resp = probe_client