Skip to main content

Troubleshooting

Start every session with webrain doctor — it checks engines, MCP server, CDP ports (9222/9224/9225), and vault. Exit 0 healthy, 2 broken.

The big three

1. Read challenge on every webrain_navigate. Obscura/lightpanda cannot pass interactive challenges — only real Chrome with a persistent profile + session (native login).
2. Obscura v0.2.0+ render builds can screenshot + PDF (no-render builds and lightpanda have no paint engine). Interactive Material / Google widgets and interactive challenges still need real Chrome via cdp_urls:["http://127.0.0.1:9222"].
3. Lightpanda’s screenshot is fake. captureScreenshot returns a placeholder PNG — silently wrong, not an error. And webrain_batch runs sequentially on it (single browser context).

Symptoms → fixes

Rules of thumb

  • Logs go to stderr; MCP speaks JSON on stdout — never redirect stderr into the stream.
  • webrain_eval doesn’t reliably await async JS on obscura (returns null) — use webrain_batch(op=interact, ...) for async work.
  • webrain_scrape needs NO browser (pure HTTP, 10–100× faster for static pages).
  • Material widgets are combobox/option/radio, not button — check the ARIA cheat-sheet in observe (what=a11y).