Handle BrokenPipeError gracefully when client disconnects during response#41
Closed
Copilot wants to merge 3 commits into
Closed
Handle BrokenPipeError gracefully when client disconnects during response#41Copilot wants to merge 3 commits into
Copilot wants to merge 3 commits into
Conversation
Co-authored-by: ondratu <6469029+ondratu@users.noreply.github.com>
Co-authored-by: ondratu <6469029+ondratu@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix broken pipe error for better output
Handle BrokenPipeError gracefully when client disconnects during response
Jan 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When clients disconnect mid-response,
BrokenPipeErrorcascades through wsgiref's error handlers, producing confusing multi-exception tracebacks withTypeErrorandAttributeErroras the handler tries to send error responses over a closed connection.Changes
Catch connection errors at response send: Added exception handler in
Application.__request__()forBrokenPipeError,ConnectionResetError, andConnectionAbortedErrorwhen callingresponse(start_response). Returns empty iterable to cleanly terminate WSGI cycle.Log as info, not error: Client disconnections are expected behavior. Changed from implicit error-level cascading tracebacks to single
log.info()message.This mirrors the existing
ConnectionErrorhandling during request processing, but applies to the response phase where wsgiref's own error handling would otherwise fail.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.