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).