Skip to content

Windows: launcher starts bundled claw-server 0.0.7 instead of installed 0.0.11, silently reverting the #1807 structuredContent fix #1850

Description

@kauki42

Summary

On Windows, the launcher starts the bundled claw-server from Application\<chrome_ver>\BrowserClawServer\default\ (0.0.7) instead of the updated one under User Data\.browseros\BrowserClawServer\versions\<current_version>\ (0.0.11), even though current_version says 0.0.11.

Because 0.0.7 predates #1807, this silently reverts the structuredContent fix: read / snapshot / grep again return only metadata to clients that prefer structuredContent (Claude Code). Nothing errors — tool calls "succeed" and just come back empty-ish, which is exactly the symptom #1560 describes. A user who verified their setup once will silently regress on the next restart.

Environment

  • BrowserClaw 0.47.10.0 (BrowserClaw_v0.47.10_x64_installer.exe), Chromium 148.0.7958.97
  • Windows 11 x64
  • current_version = 0.0.11, versions\0.0.11\ present

What happens

First launch — both servers end up running:

{"msg":"claw-server listening","url":"http://127.0.0.1:9210"}   <- bundled 0.0.7
{"msg":"claw-server listening","url":"http://127.0.0.1:9211"}   <- updated 0.0.11 (9210 was taken)

runtime.json then points at 9211 (the updated one), so a fresh setup works.

Every subsequent launch — only the bundled one comes up:

Port   PID    Path
9210   56896  ...\BrowserClaw\Application\148.0.7958.97\BrowserClawServer\default\resources\bin\browseros-claw-server.exe
$ curl -s -X POST http://127.0.0.1:9210/mcp -d '{"jsonrpc":"2.0","id":1,"method":"initialize",...}'
{"result":{"serverInfo":{"name":"browseros-claw-server","title":"BrowserOS","version":"0.0.7"}}}

runtime.json still says 9211 and is not rewritten on this bind, so external port discovery now points at a server that isn't running.

The regression, side by side

run with return 2+2:

0.0.7 (bundled, what actually runs):

{"content":[{"type":"text","text":"ok\nreturn: 4"}],"structuredContent":{"ok":true,"value":4,"logs":[]}}

0.0.11 (installed, what should run):

{"content":[{"type":"text","text":"ok\nreturn: 4"}]}

Same for read: 0.0.11 returns content-only; 0.0.7 pairs the text with a metadata-only structuredContent ({"page":1,"format":"markdown","contentLength":167}), and Claude Code shows only the latter.

Two things that make recovery harder

  1. browseros-claw-server.exe requires --config (--config is required), which isn't obvious when trying to start the versioned binary by hand.
  2. It binds ports.server from config.json with no fallback: Failed to start server. Is port 9210 in use?. So the versioned server cannot come up while the bundled one holds the port — which is precisely the steady state after a restart.

Expected

The launcher should start versions\<current_version>\ when it exists, and the bundled default\ only as a fallback. Ideally the bundled server shouldn't linger on ports.server at all once an updated version is installed.

Workaround

Kill whatever holds ports.server, then start the versioned binary explicitly:

Stop-Process -Id (Get-NetTCPConnection -State Listen -LocalPort 9210).OwningProcess -Force
& "$env:LOCALAPPDATA\BrowserClaw\User Data\.browseros\BrowserClawServer\versions\0.0.11\resources\bin\browseros-claw-server.exe" `
    --config "$env:LOCALAPPDATA\BrowserClaw\User Data\.browseros\config.json"

Then initialize reports browserclaw 0.0.11 and read returns full page content again.

Related

Separately, the Windows onboarding import fails ("Something went wrong. BrowserClaw couldn't finish this import.") for every profile and item combination I tried, including a single harmless item, and the dialog is full of macOS copy ("macOS will ask…", "Keychain prompt", footer "Signed build for Mac. v1.0."). Since the import step can't be skipped in this build, the browser stays on chrome://browseros-onboarding/ with no browser window, and every tabs call fails with CDP error: No browser window available. Happy to file that separately if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions