-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: Chrome extension browser relay removed with no cross-machine replacement (regression) #53599
Copy link
Copy link
Closed
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingSomething isn't workingclawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.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.regressionBehavior that previously worked and now failsBehavior that previously worked and now fails
Description
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingSomething isn't workingclawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.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.regressionBehavior that previously worked and now failsBehavior that previously worked and now fails
Type
Fields
Priority
None yet
Bug type
Regression (worked before, now fails)
Summary
v2026.3.22 removed driver: "extension" and the relay WebSocket server. The replacement (existing-session / Chrome DevTools MCP) is host-local only and cannot work across machines. This breaks managed hosting providers who relied on the extension relay for remote browser control
Steps to reproduce
Steps to reproduce:
Expected behavior
In 2026.3.13 and earlier, the extension relay created a browser profile with driver: "extension" and the agent could control the user's remote Chrome via the relay WebSocket. This worked across machines without requiring Node.js, open ports, or CLI tools on the user's device.
Actual behavior
driver: "extension" rejected as invalid (only "openclaw", "clawd", "existing-session" accepted). The gateway still accepts the WebSocket connection and sends connect.challenge, but never wires it to a browser profile. The docs say existing-session is "host-local" only.
OpenClaw version
2026.3.24
Operating system
Mac Os
Install method
No response
Model
Doesnt matter
Provider / routing chain
doesnt matter
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
Affected: Managed hosting providers and their non-technical end users who use the Chrome extension relay for remote browser control. Specifically any OpenClaw deployment running on a remote server (Docker/VPS) where the user's browser is on a different machine.
Severity: High (blocks workflow - remote browser automation completely broken, no working alternative for non-technical users)
Frequency: Always (100% - driver: "extension" rejected by schema validation on every startup)
Consequence: Managed hosting customers lose the ability to let their AI control their local browser. The only alternatives require installing Node.js CLI tools or launching Chrome with special flags, which non-technical users cannot do. We had to deprecate the feature in our dashboard.
Additional information
I run ClawHosters (https://clawhosters.com), a managed OpenClaw hosting platform. Customers run instances on remote VPS servers.
We forked the Chrome extension as clawhosters-relay (https://github.com/Yixn/clawhosters-relay) specifically for this use case: non-technical users controlling their local Chrome from a remote OpenClaw instance.
One-click Chrome Web Store install, no CLI, no Node.js, no open ports.
The recommended alternatives don't work for managed hosting:
The extension relay was the only approach that worked for non-technical users on remote instances. A Chrome extension is a 1-click install. A Node.js CLI is not.
Could the extension relay be restored as a plugin or optional gateway feature?
The WebSocket endpoint (/extension with connect.challenge) still exists in the gateway code.
It just needs a profile driver to wire it to the browser tool.