#Can't reach the clawd browser control service on Rpi Docker

1 messages · Page 1 of 1 (latest)

weak yoke
#

I'm running Clawd/Molt in Docker on a RaspberryPi. It works but I'm having issues with the browser tool.

Logs say:

moltbot-gateway-1  | 2026-01-27T22:15:06.455Z [tools] browser failed: Can't reach the clawd browser control service (timed out after 15000ms). Start (or restart) the Moltbot gateway (Moltbot.app menubar, or `moltbot gateway`) and try again.

Config is:

  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/chromium-browser",

    "headless": true,
    "noSandbox": true
  },

I've made sure to expose by bin to docker, although I don't know if that works:

    volumes:
      - ${CLAWDBOT_CONFIG_DIR}:/home/node/.clawdbot
      - ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
      - /usr/bin:/usr/bin
plain mistBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

stiff oysterBOT
# weak yoke I'm running Clawd/Molt in Docker on a RaspberryPi. It works but I'm having issue...

Based on the docs and a recently filed GitHub issue (#2702), this is a known arm64-specific problem with the browser control service. The browser control sub-service is silently crashing during gateway startup, and this affects arm64 environments like RaspberryPi and Hetzner ARM cloud VMs.

Solutions to Try

1. Use the Chrome Extension Relay Instead (Recommended for Docker)

Instead of the managed clawd browser, use the chrome profile with the extension relay:

{
  "browser": {
    "enabled": true,
    "defaultProfile": "chrome"
  }
}

This requires:

#

2. Install Google Chrome (Not chromium-browser)

The chromium-browser package on Ubuntu/Debian is often a snap wrapper that doesn't work well. Install real Chrome:

# Download Chrome for arm64
wget https://dl.google.com/linux/direct/google-chrome-stable_current_arm64.deb
sudo dpkg -i google-chrome-stable_current_arm64.deb
sudo apt --fix-broken install -y

Then configure:

{
#
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome-stable",
    "headless": true,
    "noSandbox": true
  }
}

3. Attach-Only Mode

Start Chromium manually outside Docker and attach to it:

# On host, start Chromium:
google-chrome-stable --headless --no-sandbox --disable-gpu \
#
  --remote-debugging-port=18800 \
  --user-data-dir=$HOME/.clawdbot/browser/clawd/user-data \
  about:blank &

Docker config:

{
  "browser": {
    "enabled": true,
    "attachOnly": true,
    "headless": true,
    "noSandbox": true
  }
}
#

4. For Docker - Use Browserless or Remote CDP

Point to a remote Chromium service instead of running one locally:

{
  "browser": {
    "enabled": true,
    "defaultProfile": "browserless",
    "profiles": {
      "browserless": {
        "cdpUrl": "https://production-sfo.browserless.io?token=<YOUR_API_KEY>"
      }
    }
  }
}

Docker Volume Mount Fix

#

Your volume mount for /usr/bin may not work correctly. Instead, install Chromium inside the container or pass the executable path differently:

volumes:
  - ${CLAWDBOT_CONFIG_DIR}:/home/node/.clawdbot
  - ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
  # Better: install chromium in Dockerfile or use browserless

The issue is being tracked: https://github.com/moltbot/moltbot/issues/2702

For Docker on RPi, I'd recommend Solution 4 (Browserless) or Solution 3 (attach-only) as the most reliable workarounds. The arm64 browser service crash is a known bug that hasn't been fixed yet.

weak yoke
#

I ended up simply adding the chromium dependency to the docker compose. Once that was done I added the executable path as “/usr/bin/chromium” and it immediately worked.