unclecode / unclecode/crawl4ai
[Bug]: RateLimiter provides ineffective protection against failures
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 83.9k
- Forks
- 8.7k
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 11
Description
crawl4ai version
6.0.0
Expected Behavior
A crawl should successful handle a site which actively manages client request rates.
Current Behavior
The current RateLimiter implementation uses a simple last request and current delay calculation, which could lead to uneven request distribution when multiple requests were made in quick succession.
The result of this is the more links discovered by as single request the more likely it is that we would trigger 429 and 503 response codes, when combined with max_retries this would cause the crawler to fail to successfully process all pages if the site implements rate limiting.
An example site: https://gamesjobslive.niceboard.co/
In addition to this it's currently not possible to configure the rate limiter for deep crawl as there is no way to set dispatcher.
Finally the rate limiter doesn't adapt to site which report their rate limits by the standard rate limiting headers, significantly increasing the number of retries and ultimately failures.
Is this reproducible?
Yes
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the RateLimiter implementation and the deep-crawl dispatcher configuration. Reproduce crawling against gamesjobslive.niceboard.co and inspect request spacing, 429/503 responses, retries, and standard rate-limit headers. Done means rate-limited sites are processed successfully, deep crawls can configure the dispatcher, and the limiter responds to reported limits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, networking, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100