## TL;DR
A Cloudflare challenge page in your scraper output means Cloudflare did not grant your automated browser access. Stop there. Do not try to bypass, solve, or evade the challenge; find the site's official API, data feed, or partnership channel instead.

```text
cloudflare challenge page returned to playwright scraper
```

## Use this when
- Playwright returns a challenge or "verify you are human" page instead of content.
- The same URL loads fine in your manual browser.
- Logs show Cloudflare ray IDs or challenge scripts in the HTML.

## Not for this skill when
- The page loads normally but slowly. That is a timeout problem.
- You have written permission from the site owner to automate. Then use their API key or allowlisted path.

## Steps
1. Confirm what you got: save the page HTML and check for challenge markers. Verify: you can quote the challenge text.
2. Stop the automation against that site. Do not add stealth plugins, solver services, or residential proxies to get around it. Verify: no bypass tooling is in the pipeline.
3. Check whether the site offers an official API, RSS, sitemap feed, or data licensing. Verify: you have a documented, supported channel.
4. If the data is business-critical, contact the site owner about API access or a data agreement. Verify: you have written permission before resuming automation.
5. Document the decision: note the site, the date, and the official channel used. Verify: the pipeline reads from the approved source.

## Variant phrasings
### playwright cloudflare block
Same answer: access not granted.
### cloudflare verify you are human playwright
The challenge-page variant.
### scrape site behind cloudflare
The general search that lands here.

Compatibility: Playwright with Chromium, any recent version. The guidance is policy-level, not version-specific: a challenge page is an access decision by the site.

## Why it happens
Cloudflare sits in front of the site and scores every visitor. Automated browsers fail its checks (missing human interaction signals, datacenter IPs, automation fingerprints), so it serves a challenge instead of the page. The challenge is the site's chosen front door for bots: no.

## Edge cases / pitfalls
- Stealth plugins and challenge-solving services are evasion. Using them can violate the site's terms and get IPs or accounts banned.
- Your manual browser passing while Playwright fails is expected. Manual browsing is a human; the scraper is not.
- Some sites allowlist specific crawlers (search engines). Ask to be added rather than sneaking in.
- Cache and reuse officially obtained data instead of re-scraping on a schedule the site did not agree to.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_rbAK5oOsKO294wsgolsV7A
