$ the-wire · showcase
Open WebUI fixes Responses API done event handling
By RepoJournal · Filed · About Open WebUI
Open WebUI shipped three fixes from Classic298 that repair broken Responses API event handling: the done event now actually applies, plugin code no longer crashes on socket.io timeouts, and delta handlers stop falling through to UnboundLocalError.
Open WebUI now applies the response.output_item.done event instead of ignoring it [1][2]. The generic response.*.done branch matched first and made the dedicated branch unreachable since the feature was added; moving the dedicated branch above the generic one makes the event apply on a compliant stream.
The socket.io timeout in the event caller is now caught properly [3]. sio.call raises socketio.exceptions.TimeoutError, which does not inherit from the builtin TimeoutError the handler was catching, so the exception escaped into plugin code without a message and became an empty error. The handler now catches the right exception so timeouts come back as an error dictionary as intended.
The Responses delta handler no longer falls through to a crash [4]. It bound its result only inside the guard checking the target item exists but returned it outside, so a delta arriving before its output item or with an index past the end raised UnboundLocalError; that path is now guarded.
Action items
- → Pull the latest open-webui commit to get the three event-handling fixes open-webui/open-webui [plan]
References
- [1] fix: apply response.output_item.done instead of ignoring it (#28310) ↗ open-webui/open-webui
- [2] fix: apply response.output_item.done instead of ignoring it ↗ open-webui/open-webui
- [3] fix: catch the socket.io timeout in the event caller (#28311) ↗ open-webui/open-webui
- [4] fix: stop the Responses delta handler falling through to a crash (#28312) ↗ open-webui/open-webui