Reported issues for acrawl
Pod holds 7 of 7 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to acrawl.
Most discussed
reCAPTCHA v3 silently blocks headless browser — no detection or reporting
Description
Headless browser silently blocked by invisible reCAPTCHA v3 on sites like DoraHacks. The browser renders the page perfectly (all DOM, forms, buttons visible), but form submissions are silently rejected because reCAPTCHA v3 scores headless sessions too low. No error message, no visible challenge — the backend just returns the same page [like nothing happened]. Acrawl has zero detection for this class of anti-bot.
Root cause: reCAPTCHA v3 runs invisibly in the background, calls
Read the thread · 2026-06-23 · closed · 3 comments
wait(seconds=N) fails with MCP protocol timeout for durations over ~45s
wait(seconds=N) fails with MCP protocol timeout for durations over ~45s
Summary
wait(seconds=N) for large values returns an MCP-level error before the sleep completes:
MCP error -32001: Request timed out
The MCP transport layer has its own hard timeout that is shorter than the requested sleep duration, making it impossible to reliably block for long-running operations.
Steps to Reproduce
- Call
wait(seconds=60). - Observe:
MCP error -32001: Request timed outreturne
Read the thread · 2026-07-05 · open · 1 comment
No wait_for_text / wait_until_element_changes primitive
No wait_for_text / wait_until_element_changes primitive
Summary
wait only supports two modes: fixed duration (seconds=N) or element state (selector + state). There is no way to block until an element's text content changes to a specific value (or matches a pattern), which is the most common need when polling async UI — e.g. waiting for a status badge to change from "running" to "completed" or "failed".
Current Workaround
Requires a polling loop of `wait(seconds=
Read the thread · 2026-07-05 · open · 1 comment
select_option unreliable on custom/framework-rendered dropdowns
select_option unreliable on custom/framework-rendered dropdowns
Summary
select_option on custom comboboxes (Vue, React, or other JS-framework dropdowns) returns success: false with "Selection could not be verified" even when the visual selection appears to have succeeded. The tool cannot distinguish between "selection worked but verification failed" and "selection did not work at all", forcing callers to fall back to execute_js.
Steps to Reproduce
- Navigate to a page with a
Read the thread · 2026-07-05 · open · 1 comment
list_network_activity + save_file: 7 friction points found during video scrape session
Summary
Two MCP tools surfaced friction during a Bilibili video scrape-and-download session: list_network_activity and save_file. The issues below were discovered empirically — each one caused a wrong turn or required an unnecessary workaround.
list_network_activity
1. Default since="last" creates a false mental model about the buffer
Current behaviour: The since parameter defaults to "last" (since the previous action).
What the description says: *"List o
Read the thread · 2026-06-23 · closed · 1 comment
Fetch router doesn't escalate CDN security block pages to browser
Description
The fetch router (HTTP path) returns CDN/security block pages as valid content instead of escalating to the headless browser. This affects sites with aggressive bot detection (Reddit, Cloudflare-protected sites).
When navigating to a page that returns a block (e.g. Reddit's "You've been blocked by network security"), the fetch router gets a ~200 char HTML response and treats it as real content. The empty-shell detection (PR #41) catches SSR shells, but block pages have enough co
Read the thread · 2026-06-17 · closed · 1 comment
feat: vision model support — screenshots as LLM image inputs
Problem
acrawl has a screenshot tool that captures viewport/element/full-page screenshots and returns them as base64. However, the base64 data is returned as a JSON string in the tool result — the LLM sees it as text, not as an image. There is no mechanism to send screenshots as vision inputs to the LLM.
The system prompt for screenshot explicitly warns: "Use as a LAST RESORT — prefer page_map and read_content for information extraction." This is correct given the current limitation
Read the thread · 2026-06-29 · closed · 0 comments
Most recent
The remaining reports are on the project's issue tracker.