Aluvia

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

sh
npx aluvia-cli setup
aluvia proxy-on

Then reload the page.

What the page says

Any of these is a string the page showed:

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.

sh
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