Skip to content
Troubleshooting

Cloudflare Error 1020 Access Denied: What Triggers It and How to Get Past It

Cloudflare error 1020 means a WAF custom rule on the site you requested evaluated your traffic and returned a block action. It is not a rate limit, not a challenge you failed, and not a Cloudflare-wide ban: it is one site's rule, written by that site's operator, matching something specific about your request. The practical question is never how to bypass 1020 in general — it is which field the rule matched.

seamless Team10 min readAugust 9, 2026
  • troubleshooting
  • cloudflare
  • waf
  • 1020
A row of upright filter panels, all open and transparent except one closed solid and lit crimson, halting the line that reaches it

Cloudflare's numbered errors are more useful than a bare 403 because each one names the subsystem that acted. 1020 specifically means a WAF custom rule with a block action matched the request. Somebody deliberately wrote the condition that caught you, which is good news: conditions are finite and testable.

Which Cloudflare code you actually have

CodeMeaningWho to talk to
1020A WAF custom rule blocked the requestSite owner
1015Cloudflare rate limitingSlow down; nobody to talk to
1005The whole ASN is banned by the site ownerSite owner
1010Browser signature rejectedFix the client, not the IP
1006 / 1007 / 1008Your IP was banned by the ownerSite owner
520–527Origin problem behind CloudflareNothing you can do

Getting this right saves hours. A 1015 will clear on its own if you pace properly, as covered in HTTP 429. A 1020 will not clear no matter how long you wait, because nothing about it is time-based.

What custom rules typically match

Cloudflare exposes a long list of request fields to rule authors. In practice a handful account for almost every 1020 people encounter.

FieldTypical ruleWhat it means for you
ip.geoip.countryAllow a shortlist of countries, block the restExit country is wrong for this site
ip.geoip.asnumBlock known hosting and VPN networksDatacenter exit; residential avoids this entirely
http.user_agentBlock empty or obviously automated agentsYour client is announcing itself
http.request.uri.pathLock /admin, /api, /wp-login to known addressesYou are on a path that is not public
cf.threat_scoreBlock above a thresholdThe address carries reputation history
http.request.methodBlock POST from unauthenticated sourcesThe verb, not the URL, is the trigger

Rules are evaluated in order and the first match with a block action wins. That is why changing one thing can flip the outcome completely while changing three at once tells you nothing.

Diagnosing it as a visitor

If you are a legitimate user of the site, 1020 usually means something about your connection matched a rule aimed at somebody else.

  1. 1Turn off the VPN. Consumer VPN ranges are the single most commonly blocked ASNs.
  2. 2Try mobile data. A different network with a different ASN answers the question in ten seconds.
  3. 3Disable extensions that modify requests, then reload.
  4. 4Clear the site's cookies. A stale cf_clearance can produce odd behaviour after a rule change.
  5. 5Note the Ray ID and email the site. The owner can look it up and see the exact rule that fired — you cannot.

Diagnosing it as an operator

For automated traffic, the goal is to identify the matched field by changing exactly one variable at a time and recording the result.

  • Country — same request, exit in a different country. A clean success points straight at a geo rule.
  • ASN — same country, residential exit instead of datacenter. This flips more 1020s than anything else.
  • Client — the same URL in a real browser on the same connection. Success means the address is fine and the client is not.
  • Path — a different, plainly public URL on the same host. Success means the rule is scoped to the path you wanted.
  • Method — a GET where you were sending POST.

Record the Ray ID for every failure alongside the exit IP, country and timestamp. When the same rule fires across a hundred requests, the pattern in that table is the answer, and reconstructing it afterwards from logs that only stored 403 is impossible.

Test a residential exit against the same target

Residential IPs sit in consumer ASNs rather than hosting ranges, which is the field most 1020 rules match on. From €1.20/GB, data never expires.

See residential proxies

What does not work

Three approaches come up constantly and are worth ruling out before you spend time on them.

  • Waiting. A custom rule has no cooldown. It will block the same request next week.
  • Retrying harder. The rule is deterministic; the hundredth attempt matches exactly as the first did.
  • Solving a CAPTCHA. A block action never presents a challenge. If you are seeing a challenge, you have a managed challenge rule, not 1020.

If the site publishes an API, use it. Rules that block scraping on the HTML front end are frequently absent on the documented API, and the API is both faster and stable across redesigns.

If you own the site

From the other side, 1020 is your own rule doing its job on the wrong traffic. Open Security Events, filter to blocked requests, and read what actually matched — the field and value are shown per event.

  1. 1Sort blocked events by rule to find which one is over-firing.
  2. 2Check whether real customers are in the sample. Country rules catch travelling users constantly.
  3. 3Narrow the condition rather than deleting the rule.
  4. 4Move borderline rules from block to managed challenge, which lets humans through and still stops most automation.
  5. 5Add an allowlist for your own monitoring, uptime checks and payment webhooks before they page you at 3am.

Error 1020 is ultimately a communication problem: a rule expressing an intention, meeting a request that did not know the intention existed. Whichever side of it you are on, the fix comes from reading the actual match rather than guessing at the policy.

Sources

Frequently asked questions

What does Cloudflare error 1020 mean?

A WAF custom rule on that specific site matched your request and returned a block action. It is configured by the site owner, not by Cloudflare, so the same request can be perfectly acceptable to another Cloudflare-protected site.

How do I fix error 1020 as a normal visitor?

Disable any VPN, try a different network such as mobile data, turn off extensions that modify requests, and clear the site's cookies. If it persists, send the site owner the Ray ID from the error page — only they can see which rule fired.

Will changing my proxy fix error 1020?

It depends on which field the rule matched. If the rule targets hosting ASNs or a country, a residential exit in an accepted country resolves it. If it matches your user agent, request path or method, the exit IP is irrelevant.

What is the difference between error 1020 and error 1015?

1020 is a custom firewall rule with a block action and has no cooldown. 1015 is Cloudflare's rate limiter, is purely volume-based, and clears once you slow down.

Is error 1020 a permanent ban?

Not a ban in the account sense, but it will not expire either. The rule keeps matching until the site owner changes it or until your request stops matching the condition.

Does solving a CAPTCHA clear a 1020?

No. A block action never shows a challenge. If you are being offered a CAPTCHA, the rule action is a managed challenge rather than a block, which is a different situation with a different fix.

SE
seamless Team
Proxy infrastructure

The seamless team runs residential, ISP and datacenter proxy infrastructure and writes these guides from day-to-day operational experience.

Ready to try seamless proxies?

Residential, ISP and datacenter proxies with no data expiry.

Browse Plans