#How to resolve “Can't reach the OpenClaw browser control service (timed out after 20000ms).

1 messages · Page 1 of 1 (latest)

wise raptor
#

I do not think I am the only person that encounter this issue.

root@ubuntu-s-1vcpu-1gb-sgp1-01:~# openclaw browser --browser-profile openclaw start

🦞 OpenClaw 2026.2.9 (33c75cb) — Automation with claws: minimal fuss, maximal pinch.

│
◇  
│
◇  
🦞 browser [openclaw] running: true

openclaw browser --browser-profile openclaw open https://google.com

🦞 OpenClaw 2026.2.9 (33c75cb) — The UNIX philosophy meets your DMs.

│
◇  
opened: https://google.com/
id: D39C321D642245A13EA7698990C09FC1

but when I do:

curl -sS --max-time 2 http://127.0.0.1:18791/ || echo "NOPE"

NOPE is the output.

also if I tell the agent, do openclaw browser --browser-profile openclaw open https://google.com and fetch me some info, agent get blocked by:

Our systems have detected unusual traffic from your computer network. This page checks to see if it's really you sending the requests, and not a robot

Use what setting can I let my agent browse internet and fetch me info (like gold price today or sports news) like a human.

I run the agent in a digital ocean server so there is no GUI.

also this is my browser config, which looks standard. (I restarted a few times) Thank you very much!

"browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome",
    "headless": true,
    "noSandbox": true,
    "attachOnly": false,
    "defaultProfile": "openclaw"
  },
vital crestBOT
#

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

feral robinBOT
#

Two separate things going on here:

1) Why curl http://127.0.0.1:18791/ returns NOPE

18791 is the browser control service port only if your gateway.port is the default. The control port is derived:

  • browser control port = gateway.port + 2 (default gateway 18789 → control 18791)
  • relay port is gateway.port + 3 (default 18792)

So first, confirm what port family you’re actually running:

openclaw gateway status
openclaw config get gateway.port

Then test the derived port:

#
# if gateway.port is 18789 (default)
curl -s http://127.0.0.1:18791/ || echo NOPE

If it’s still NOPE, then the control service isn’t listening (or the Gateway isn’t healthy). Grab:

openclaw status
openclaw gateway status
openclaw logs --follow

…and (optional but super helpful):

#
ss -ltnp | grep 1879

Docs: https://docs.openclaw.ai/tools/browser and https://docs.openclaw.ai/tools/browser-linux-troubleshooting

2) Google’s “unusual traffic” / CAPTCHA problem

That’s expected on a data-center IP + headless automation. There isn’t a magic OpenClaw setting that makes Google treat a headless VPS like a normal human browser, and I can’t help with bypassing anti-bot/CAPTCHA systems.

What does work well for “gold price today / sports news” is: don’t use Google + browser automation at all. Use OpenClaw’s web tools:

  • web_search (Brave Search API) to find sources
  • web_fetch to extract readable content

Enable them (from the FAQ):

#

If you paste the output of openclaw gateway status + the failing curl -v ... (and whether you changed gateway.port), I can tell you exactly why the control service isn’t reachable on your box.

wise raptor
#

what is the difference between web fetch and web search?

feral robinBOT
#

web_search and web_fetch solve different halves of the “get info from the internet” problem:

web_search

  • Purpose: discover URLs relevant to a query (like a search engine).
  • Input: a search query string.
  • Output: a list of results (title + URL + snippet).
  • Needs: typically an API key (in OpenClaw’s default setup, it’s Brave Search API).

Example use: “find recent articles about gold price today” → returns a handful of links.

web_fetch

  • Purpose: open a specific URL and extract readable content (HTML → text/markdown).
  • Input: a URL.
  • Output: the page’s main content (cleaned up).
  • Needs: no search API key (it’s just fetching the page), but the target site can still block/rate-limit.

Example use: take one of the URLs from web_search (or one you already know) → fetch and extract the article.

wise raptor
#

is this only the way to search the info from the internet?

feral robinBOT
#

No—web_search + web_fetch is just the recommended “general-purpose” path for up-to-date internet info (because it’s fast, cheap, and avoids a lot of browser/CAPTCHA pain).

Here are the main options in OpenClaw, and when you’d use each:

  1. Direct fetch (no search)
  • If you already know the URL (or you have a small set of known good sources), you can skip search entirely:
    • web_fetch("https://…") → extract content
  1. Search + fetch (most common)
  • web_search("query") → find relevant URLs
  • web_fetch(url) → read the page content
    Best for: “what’s the latest news on X?”, “gold price today”, “match result”, etc.
  1. Browser automation (browser tool)
  • Needed for: sites that require interaction (clicking, dynamic JS apps, logins).
  • Downsides: on a VPS/headless/DC IP you’ll hit more bot checks (Google especially).
    Docs: https://docs.openclaw.ai/tools/browser
#
  1. Use a real data API (often the best for prices/markets/weather/sports)
  • For “gold price”, “FX rate”, “sports scores”, etc: a dedicated API is usually more reliable and less brittle than scraping.
  • In OpenClaw you’d typically do this via a small custom skill/tool (HTTP call) or an existing integration, depending on what you have enabled.
  1. Run browsing on a different machine (node / extension relay)
  • If your VPS gets blocked, you can run a node on a personal machine/network and have the Gateway route browser calls there (more “normal” browsing environment, still within your control).

So: not the only way, but web_search/web_fetch is the best default for “fetch me current info” without turning your setup into a CAPTCHA-farm.

If you tell me your exact goal (e.g. “gold spot price in USD, update hourly” vs “summarize today’s sports news”), I can suggest the most robust approach for that use case.

wise raptor
#

How to use the new model GLM 5.0 with openclaw? also is there command I can update version?

feral robinBOT
#

To use GLM 5.0 in OpenClaw you generally want the Z.AI provider (zai).

1) Set up Z.AI auth

Recommended via wizard:

openclaw onboard --auth-choice zai-api-key

(or set ZAI_API_KEY in the Gateway’s environment / ~/.openclaw/.env).

Docs: https://docs.openclaw.ai/concepts/model-providers#zai-glm

2) Find the exact model id OpenClaw knows about

Don’t guess the model string—list what your install has:

#
openclaw models list --all --provider zai

Then set it (use the exact zai/<model> you see in the list):

openclaw models set zai/<that-model-id>

If you have an allowlist (agents.defaults.models) and get “Model … is not allowed”, you need to add that model to the allowlist (or remove the allowlist).

3) Update OpenClaw (yes, there’s a command)

First check what you’re on:

#

If zai/glm-5.0 doesn’t show up in models list, updating is the first thing I’d try—model catalogs move fast.

wise raptor
#

how to use to install a newly build skill to openclaw bot locally?

feral robinBOT
#

To “install” a newly built skill locally, you usually just drop the skill folder (with SKILL.md) into a directory OpenClaw scans.

Pick where to put it

A) Only for one agent/workspace (recommended while developing)

Put it in that workspace’s skills folder:

  • <workspace>/skills/<your-skill>/SKILL.md

On most single-agent installs the workspace is typically:

  • ~/.openclaw/workspace/skills/<your-skill>/SKILL.md

B) Shared for all agents on that machine

Put it here:

  • ~/.openclaw/skills/<your-skill>/SKILL.md
#
openclaw skills list
openclaw skills list --eligible
openclaw skills info <skill-name>
openclaw skills check

If it doesn’t show up immediately, either:

  • wait for the next agent turn (skills watcher is usually on), or
  • restart the gateway: openclaw gateway restart

Common gotchas

  • The skill must have SKILL.md with frontmatter at least name: and description:.
  • If your skill relies on binaries/scripts, make sure they’re on PATH (and also inside the sandbox if you run sandboxed sessions).

Creating skills doc: https://docs.openclaw.ai/tools/creating-skills