-
-
Notifications
You must be signed in to change notification settings - Fork 69.5k
Bug: openclaw browser open can crash OpenClaw.app via browser.proxy / MacNodeBrowserProxy.makeRequest #43872
Description
Bug: openclaw browser open can crash OpenClaw.app via browser.proxy / MacNodeBrowserProxy.makeRequest
Summary
On macOS, openclaw browser open <url> can crash OpenClaw.app instead of returning a normal browser/tool error.
The failure reproduces with both:
- the managed
openclawbrowser profile - the
chromeextension-relay profile
The crash reports consistently point to:
MacNodeBrowserProxy.makeRequest(params:endpoint:)NSJSONSerialization dataWithJSONObjectSIGABRT
This looks like a browser-proxy request serialization bug in the macOS app, not just a browser launch failure.
Environment
- OpenClaw app:
2026.3.8-beta.1 - Build:
2026030801 - macOS:
26.2 (25C56) - CPU:
Apple Silicon / arm64 - CLI runtime observed locally:
node 25.8.0 - Installed Chromium-family browser on this machine:
Microsoft Edge
Reproduction
Case 1: managed openclaw profile
- Ensure gateway/app is running.
- Run:
openclaw browser status
openclaw browser start
openclaw browser open https://www.baidu.comCase 2: chrome profile
- Ensure gateway/app is running.
- Run:
openclaw browser --browser-profile chrome open https://www.baidu.comExpected
- The command should either open the page successfully, or
- return a normal recoverable error if browser relay / browser proxy is unavailable.
It should not crash OpenClaw.app.
Actual
- CLI returns:
Error: Error: node disconnected (browser.proxy)
- Immediately after,
OpenClaw.appaborts and a crash report is generated.
Evidence
Gateway log sequence
At 2026-03-12 16:22:53 +0800, the browser request starts successfully:
[browser/chrome] openclaw browser started (edge) profile "openclaw" on 127.0.0.1:18800
[ws] res ✓ browser.request
Then at 2026-03-12 16:22:56 +0800, it fails:
[ws] res ✗ browser.request ... Error: node disconnected (browser.proxy)
And shortly after, the gateway receives shutdown signals.
Relevant log file:
/Users/caojiaming/.openclaw/logs/gateway.log
Crash reports
Observed crash reports:
/Users/caojiaming/Library/Logs/DiagnosticReports/OpenClaw-2026-03-12-162259.ips/Users/caojiaming/Library/Logs/DiagnosticReports/OpenClaw-2026-03-12-164337.ips/Users/caojiaming/Library/Logs/DiagnosticReports/OpenClaw-2026-03-12-164947.ips
These reports consistently show:
SIGABRT
...
_writeJSONValue
+[NSJSONSerialization dataWithJSONObject:options:error:]
static MacNodeBrowserProxy.makeRequest(params:endpoint:)
MacNodeBrowserProxy.request(paramsJSON:)
Notes
openclaw browser startalone can succeed.- The crash is triggered when performing an actual browser action like
open/ navigation. - This does not look like a simple "Edge unsupported" problem:
- the browser executable is detected correctly
- launch succeeds
- the crash happens later in browser-proxy request handling / JSON serialization
- I also reproduced the same
browser.proxyfailure path using thechromeprofile, so this appears broader than one profile name.
Suspected root cause
MacNodeBrowserProxy.makeRequest(params:endpoint:) appears to pass a non-JSON-serializable object into NSJSONSerialization, causing an Objective-C exception that is not caught and aborts the entire app.
Suggested fix direction
- Validate request payloads with
isValidJSONObjectbefore serialization - Sanitize unsupported values before calling
NSJSONSerialization - Convert this path from app abort -> recoverable tool error
- Log the offending payload shape/type so the exact bad field can be identified