# 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](/mcp/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](https://github.com/Mingye-Lu/AgenticCrawler/issues/48) · 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

1. Call `wait(seconds=60)`.
2. Observe: `MCP error -32001: Request timed out` returne

[Read the thread](https://github.com/Mingye-Lu/AgenticCrawler/issues/88) · 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](https://github.com/Mingye-Lu/AgenticCrawler/issues/83) · 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

1. Navigate to a page with a

[Read the thread](https://github.com/Mingye-Lu/AgenticCrawler/issues/80) · 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](https://github.com/Mingye-Lu/AgenticCrawler/issues/50) · 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](https://github.com/Mingye-Lu/AgenticCrawler/issues/43) · 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](https://github.com/Mingye-Lu/AgenticCrawler/issues/60) · 2026-06-29 · closed · 0 comments

## Most recent

The remaining reports are on [the project's issue tracker](https://github.com/Mingye-Lu/AgenticCrawler/issues).
