ClawKit Logo
ClawKitReliability Toolkit

Fix: Browser Control Server Hangs on /start (Ubuntu x64)

Can't reach the OpenClaw browser control server at http://127.0.0.1:18791/start
(timed out after 15000ms)

The OpenClaw browser control server starts a Chromium/Chrome instance when it receives a POST to/start. On Ubuntu x64 servers, Chrome often fails silently due to missing sandbox permissions, no display server, or absent system dependencies โ€” leaving the /start request hanging until the 15-second timeout. Other endpoints like /snapshot and/open may work fine because they don't require Chrome to be fully running.

Related report: openclaw/openclaw#33878.

Next Step

Fix now, then reduce repeat incidents

If this issue keeps coming back, validate your setup in Doctor first, then harden your config.

Step 1: Check What Chrome Is Actually Failing On

Run Chrome manually to see the error
# Find the Chrome/Chromium binary OpenClaw uses
which google-chrome || which chromium-browser || which chromium

# Run it manually with verbose output
google-chrome --no-first-run --headless=new --disable-gpu --no-sandbox about:blank 2>&1 | head -30

The output will reveal the actual failure โ€” missing libraries, sandbox error, or no display.

Step 2: Install Missing System Dependencies

Chromium on Ubuntu requires several libraries that are not installed by default on minimal server images:

Install Chromium dependencies (Ubuntu)
sudo apt-get update && sudo apt-get install -y   chromium-browser   libasound2   libatk-bridge2.0-0   libatk1.0-0   libcups2   libdbus-1-3   libgbm1   libgtk-3-0   libnspr4   libnss3   libxcomposite1   libxdamage1   libxrandr2   xdg-utils

Step 3: Fix Chromium Sandbox on Servers

Many Ubuntu server configurations disable user namespaces, which Chromium's sandbox requires. Add --no-sandbox to the OpenClaw browser args:

Configure --no-sandbox in openclaw.json
{
  "browser": {
    "args": ["--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage"]
  }
}

Security note: --no-sandbox reduces isolation. It is appropriate for servers where you control all browser activity. Do not use it if the browser will visit untrusted sites without your agent's explicit direction.

Step 4: Add a Virtual Display (if Chromium Requires One)

Some Chromium versions on Ubuntu refuse to start without a display, even in headless mode. Run a virtual framebuffer:

Install and start Xvfb
sudo apt-get install -y xvfb

# Start virtual display
Xvfb :99 -screen 0 1280x720x24 &
export DISPLAY=:99

# Add to your shell profile or systemd service for persistence

Step 5: Use Headless Mode in OpenClaw Config

If Chrome can run headless, configure OpenClaw to always use headless mode:

Enable headless browser mode
{
  "browser": {
    "headless": true,
    "args": ["--no-sandbox", "--disable-dev-shm-usage"]
  }
}

Once the fix is applied, the /start endpoint should respond within a few seconds. Test with: curl -X POST http://127.0.0.1:18791/start

Did this guide solve your problem?