Cloudflare is blocking the agent's browser on a cloud VM
This page as markdown: https://aluvia.io/unblock/cloudflare.md
Cloudflare challenged this cloud VM with Verify you are human, Error 1015, Error 1020, or a Turnstile infinite loop. A residential or mobile IP sometimes lets the page through. Fingerprint, TLS, and canvas can still fail.
Fix
npx aluvia-cli setup aluvia proxy-on
Then reload the page.
What the page says
Any of these is a string the page showed:
- Checking if the site connection is secure
- Verify you are human
- Sorry, you have been blocked
- Error 1020
- Error 1015
- Please verify you are a human
- Un instant…
- Vérification de sécurité en cours
Why it happens
Cloudflare scores the connection before the page is served. A cloud or datacenter IP is a large part of that score, so Grok Bot and other cloud Chrome often see Verify you are human, Sorry, you have been blocked, Error 1015, or Error 1020 on every request from the VM. Access Denied with Error 1020 on a Cloudflare cloud VM is the same score, not a password form.
French Turnstile copy is the same check: Un instant… and Vérification de sécurité en cours. A Turnstile infinite loop on Docker or Selenium hosted Chrome, and Playwright on AWS Lambda, is the challenge returning after every pass while the client is still that datacenter address. A different exit IP is one input. A Ray ID in the page footer means the edge decided; it does not mean the browser will pass the next check. Linux Chrome, TLS, canvas, and fingerprint can still fail.
What those commands do
npx aluvia-cli setup aims the existing Chrome at a local proxy. aluvia proxy-on sends every tab through a residential or mobile IP. Neither command restarts the browser after that first setup.
Cloudflare scores this challenge while the client is the VM's datacenter IP, before the page loads, which is why these commands exist.
If it is still blocked
One exit IP can be blocked on its own. Get a different one and reload again.
aluvia rotate-ip
When this is the wrong tool
A Ray ID means the edge scored this connection. A different exit is one input to that score, not a pass.
Other block signals
- “Not available in your region” on a cloud VM
- Cloudflare Error 1010 Access Denied on a cloud VM
- A CAPTCHA loop: Please verify you are a human, from a cloud VM
- Google unusual traffic from your computer network on a cloud VM
- 403 Forbidden opening a site from a cloud VM
- 429 Too Many Requests: rate limit exceeded on a cloud VM
- This request was blocked by our security service — Imperva Error 16 from a cloud agent
- “We're verifying your browser” on a Vercel Security Checkpoint