Skip to content

type_text and evaluate_javascript incorrectly return "Browser automation requires a paid Donut Browser plan" #332

@VladimirBigunenko

Description

@VladimirBigunenko

Title: type_text and evaluate_javascript incorrectly return "Browser automation requires a paid Donut Browser plan"

Description:
Even with an active Pro (Monthly) subscription (1/20 profiles used), the type_text and evaluate_javascript MCP tools return:

{"code":-32000,"message":"CDP error: {\"code\":-32000,\"message\":\"Browser automation requires a paid Donut Browser plan.\"}"}

This is incorrect according to the official documentation.

Evidence that this is a bug:

1. Documentation states automation is FREE:
From https://context7.com/zhom/donutbrowser:

"Browser automation does NOT require a paid plan. All automation features are included with Donut Browser at no additional cost."
"Local REST API - Available by default, No payment required"
"MCP (Model Context Protocol) - Supported for AI integrations, Free to use"

2. CDP port is active and responds:

$ curl http://127.0.0.1:45507/json/version
{
  "Browser": "Chrome/146.0.7680.164",
  "Protocol-Version": "1.3",
  ...
}

3. navigate works fine (also uses CDP):

$ curl -X POST http://127.0.0.1:51080/mcp/TOKEN \
  -d '{"method":"tools/call","params":{"name":"navigate","arguments":{"profile_id":"c8e3b723-...","url":"https://onlyfans.com"}}}'
{"result":{"content":[{"text":"Navigated to https://onlyfans.com/..."}]}}  ✅ SUCCESS

4. But type_text fails with false error:

$ curl -X POST http://127.0.0.1:51080/mcp/TOKEN \
  -d '{"method":"tools/call","params":{"name":"type_text","arguments":{"profile_id":"c8e3b723-...","selector":"div[contenteditable=true]","text":"Hello"}}}'
{"error":{"code":-32000,"message":"CDP error: {\"code\":-32000,\"message\":\"Browser automation requires a paid Donut Browser plan.\"}"}}

5. Tested on BRAND NEW profile (no cookies, no extensions):

  • Profile: TestAutomationFix (ID: c8e3b723-1d93-4f49-bb65-d899167b20d4)
  • Created fresh during testing
  • Error still occurs on new profile

6. Playwright direct CDP connection fails too:

const browser = await chromium.connectOverCDP('http://127.0.0.1:45507');
// page.type() and page.fill() also fail with same error

Environment:

  • Donut Browser: v0.22.5
  • Browser engine: Wayfern 146.0.7680.166
  • OS: Linux x86_64 (CachyOS/Arch)
  • Subscription: Pro (Monthly) - 1/20 profiles
  • MCP Server: Running on port 51080
  • CDP Port (tested): 45507

Steps to reproduce:

  1. Launch any Wayfern profile via MCP
  2. Call type_text or evaluate_javascript tool
  3. Receive error: "Browser automation requires a paid Donut Browser plan."

Expected behavior:

According to documentation, automation tools should work without requiring a paid plan. The error message is misleading - it suggests a missing subscription, but the user already has Pro plan active.

Additional info:

  • Log shows: "Browser automation requires a paid Donut Browser plan." even with Pro subscription
  • Navigation works (which also uses CDP protocol)
  • The error comes from the browser engine itself via CDP
  • Possibly related to: cookie decryption errors seen in logs:
    [ERROR] Pre-launch: Cookie decryption FAILED for '__AP_SESSION__'
    

Suggested fix:

Review the CDP command filtering logic - it appears to incorrectly block automation commands even when the user has valid Pro subscription (or even according to docs, when it should be free for all).


Link to documentation: https://context7.com/zhom/donutbrowser
Test repo: https://github.com/zhom/donutbrowser

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions