Repository navigation
Description
Native Gateway: browser status/profiles blocked by listener ownership verification
Environment
- Windows Companion: v2026.9.8-1, matching the latest official GitHub release checked today.
- Gateway CLI: v2026.9.9.
- Local Native Gateway using the packaged runtime.
- The paired Windows Node is connected and advertises browser capability and browser.proxy.
Reproduction and observed result
The main agent used the official browser tool to request status and profiles on the connected Windows Node. Both requests failed with:
Browser control authentication was blocked because the local listener owner could not be verified.
No browser launch or Chrome attachment occurred. The intended Gemini test was never sent. This report contains no credentials, personal paths, account identifiers, or raw diagnostic logs.
Investigation
The error is produced by BrowserProxyCapability before sending authentication to the local browser control service.
In the installed release's browserControlAuthorization callback, I found checks for an SSH-owned listener and an application-managed local WSL Gateway. I did not find a Native Gateway runtime ownership branch in that callback. The active configuration has a Native package/runtime contract, no SSH configuration, and no setup-managed WSL name.
This suggests a mismatch between the Native Gateway configuration and the ownership-validation path. It is a hypothesis, not a confirmed root cause: I have not determined which internal validation condition returns false.
Expected behavior and request
Please confirm whether browser.proxy ownership validation is supported for this Native Gateway configuration in the current release, and whether there is a supported fix or configuration procedure.
The ownership check has not been disabled, and no authentication data or browser profiles have been copied. I am looking for a supported solution that preserves the security checks.
References
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Projects
- StatusShow more project fieldsBacklog
Activity
clawsweeper commentedon Oct 11, 2026
Codex review: this still needs some work.
Summary
Keep open: both current main and the reported release reject Native Gateway browser authorization before HTTP, because the callback supports SSH and managed WSL ownership but has no native path.
Reproducibility: yes. at source level: a native package record without SSH necessarily returns false from browser authorization, producing the exact reported error before HTTP; no live Windows reproduction, builds or tests were run during this read-only review.
Maintainer decision needed
Next step
Confirm native browser-port attestation, then establish a failing status/profiles regression and repair authorization without weakening listener checks.
Security
Needs attention: The current path protects credentials; repairing native support requires proof of the actual browser listener's ownership.
Review details
Best possible solution:
Authorize the actual native browser listener through a focused ownership service and provide a visible recovery action when verification is unavailable.
Do we have a high-confidence way to reproduce the issue?
Yes at source level: a native package record without SSH necessarily returns false from browser authorization, producing the exact reported error before HTTP; no live Windows reproduction, builds or tests were run during this read-only review.
Is this the best way to solve the issue?
A native-specific ownership path is warranted, but it must verify the browser listener itself rather than reuse Gateway-port proof or remove the authorization check.
AGENTS.md: found and applied where relevant.
Remaining risk / open question:
Codex review notes: model internal, reasoning medium; reviewed against 16299381a4df.
Label changes
Label changes:
P1: The official release and current main block browser tool calls for a connected Native Gateway node.impact:security: The repair changes the listener-ownership boundary protecting the saved shared Gateway token.impact:ux-friction: An advertised browser capability fails with an ownership error and no established supported native recovery procedure.issue-rating: 🦞 diamond lobster: Current issue advisory state selects this label.clawsweeper:source-repro: Current issue advisory state selects this label.clawsweeper:no-new-fix-pr: Current issue advisory state selects this label.clawsweeper:needs-security-review: Current issue advisory state selects this label.Label justifications:
P1: The official release and current main block browser tool calls for a connected Native Gateway node.impact:security: The repair changes the listener-ownership boundary protecting the saved shared Gateway token.impact:ux-friction: An advertised browser capability fails with an ownership error and no established supported native recovery procedure.Evidence reviewed
Security concerns:
src/OpenClaw.Tray.WinUI/App.xaml.cs:2409The native runtime's existing inspection is tied to the Gateway port. Allowing browser authentication based only on successful pairing or Gateway ownership would leave the separate browser listener unverified.
Confidence: 0.98
What I checked:
src/OpenClaw.Tray.WinUI/App.xaml.cs:2409, 16299381a4df)src/OpenClaw.Connection/GatewayRecord.cs:195, 16299381a4df)src/OpenClaw.Shared/Capabilities/BrowserProxyCapability.cs:80, 16299381a4df)tests/OpenClaw.Shared.Tests/CapabilityTests.cs:963, 16299381a4df)src/OpenClaw.Connection/NativeGateway/IsolatedGatewayRuntime.cs:230, 16299381a4df)How this review workflow works
@clawsweeper re-reviewcomments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.@clawsweeper re-reviewor@clawsweeper re-runon an open PR or issue to request a fresh review only.@clawsweeper reviewto request a fresh review only.@clawsweeper autofix,@clawsweeper automerge,@clawsweeper fix ci, or@clawsweeper address review.@clawsweeper explainto ask for more context, or@clawsweeper stopto stop active automation.Reviewed October 11, 2026, 9:58 AM ET / 13:58 UTC.
github-actions commentedon Oct 26, 2026
This issue has been automatically marked as stale due to inactivity.
Please add updated OpenClaw Windows details or it will be closed.
grrgp228-bot commentedon Oct 27, 2026
Status update (2026-10-28): I have not re-tested this on the current Windows installation, so this is a source/release review, not a fresh runtime reproduction.
GitHub still lists v2026.9.8-1 as the latest non-prerelease release. I also checked v2026.10.5-alpha.4 and main at 48cb8a1.
In the browserControlAuthorization callback, the alpha still rejects a non-SSH Native Gateway record because ResolveManagedDistroName returns null. Current main calls FixtureLoopbackListenerOwner in that case, but that helper explicitly fails closed outside fixture mode. This does not appear to provide production Native Gateway browser-listener authorization.
Related merged PR #1628 addresses process-proxy handling for browser.proxy; it does not establish ownership attestation for the Native Gateway browser-control listener.
Could a maintainer please confirm:
Please keep this issue open pending clarification or link the tracked replacement/fix. No authentication checks have been disabled as part of this review, and this update contains no credentials or raw diagnostic logs.
roboclaw-bot commentedon Nov 10, 2026
Consolidating duplicate report #1975 here, without treating the underlying bug as fixed. The newer report confirms that browser status and doctor still fail on Companion and CLI 2026.11.1: #1975 (comment). Both reports use a non-SSH Native Gateway and hit browser-listener ownership verification before authentication is sent. This issue remains the canonical tracking item for a supported native browser-port ownership contract and status/profiles proof. Preserve rejection of foreign or replaced listeners; do not disable the check.