Repository navigation
fix(ws): warn when the server ignores binary frames - #166
Merged
Merged
Conversation
The WebSocket server silently dropped binary frames, so a client that sends JSON-RPC as binary saw initialize hang with no diagnostic. Keep ignoring them per the transport RFD, but log a warning once per connection. Refs #162 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
The WebSocket server transport drops binary frames without saying anything. A client that sends JSON-RPC as binary frames just sees
initializehang, with nothing to explain why (#162).Binary frames are still ignored, as the transport RFD requires ("All messages are WebSocket text frames containing JSON-RPC. Binary frames are ignored."). The server now logs a warning on the first binary frame of each connection.
docs/web-transport.mdnow also says that it is one message per text frame and that binary frames are ignored.Refs #162
Testing
test_asgi_websocket_warns_once_on_binary_frames: two binary frames produce exactly one warning, andinitializestill gets answered. It fails without the source change.make check: passed.make test: 403 passed, 1 skipped (opt-in Gemini test).make docs-test: passed.🤖 Generated with Claude Code