fix(streaming): Move error event handling outside thread.* condition #2804
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2796 - Removes dead code in streaming error handling
Problem
The error handling logic for
sse.event == "error"was incorrectly nested inside theif sse.event.startswith("thread.")condition at:Stream.__stream__methodAsyncStream.__stream__methodThis made the error handling code logically unreachable (dead code) because a string cannot simultaneously:
Root Cause
Regression introduced in commit
abc25966which fixed indentation but accidentally moved the error handler from an else branch into the thread.* condition block.Solution
Restructured the conditional logic to:
sse.event == "error"FIRST (before any event type routing)thread.*events with their special data structure formatThis ensures error events are properly caught and raise
APIErrorwith the appropriate error message.Changes
src/openai/_streaming.py:StreamandAsyncStreamclassesTesting
ruff check .)ruff format)Test Plan