-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: browser extension relay leaves CDP clients waiting when malformed frames arrive #102057
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExclude from stale automationExclude from stale automation
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExclude from stale automationExclude from stale automation
Type
Fields
Priority
None yet
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Browser extension relay CDP clients that send malformed JSON or a structurally invalid request receive no JSON-RPC error response.
Steps to reproduce
upstream/main(19f7b72a74731438f15aafbfc7c84593f6151dfc).ExtensionRelayBridge.attachCdpClientSocket(...).idand stringmethod.onMessage(...)returns without sending a response to the CDP client.Expected behavior
The relay should respond to malformed CDP client frames with a JSON-RPC parse error (
-32700) or invalid-request error (-32600) so callers fail immediately at the protocol boundary.Actual behavior
extensions/browser/src/browser/extension-relay/relay-bridge.tscatchesJSON.parse(...)failures and returns silently. It also returns silently when the parsed frame does not contain a numericidand stringmethod, leaving the client waiting for its own timeout.OpenClaw version
current
upstream/mainsource:19f7b72a74731438f15aafbfc7c84593f6151dfcOperating system
Source-level bug; not OS-specific.
Install method
Source checkout.
Model
NOT_ENOUGH_INFO
Provider / routing chain
NOT_ENOUGH_INFO
Additional provider/model setup details
NOT_ENOUGH_INFO
Logs, screenshots, and evidence
Impact and severity
Affected: browser extension relay CDP clients, including automation clients using the relay.
Severity: Low to medium; malformed client frames are an edge case, but the current behavior can turn a protocol error into a caller-side timeout.
Frequency: Always for malformed JSON or invalid CDP request object frames at this boundary.
Consequence: Clients do not receive a timely protocol error and may wait until their own timeout.
Additional information
A focused regression test can assert that malformed JSON receives one JSON-RPC parse error response and invalid request objects receive one invalid-request response without forwarding anything to the extension socket.