A custom block or denial page may call Cloudflare APIs to resolve a rule name, device name or other reference data.
A transient API error should not immediately destroy the experience, but unlimited retries are worse: the user waits on a page whose underlying security decision has already been made.
I prefer a bounded pattern:
lookup
↓ fail
short delay
↓
retry
↓ fail
fallback value
The fallback should preserve whatever identifier is already available.
For example:
rule-name lookup succeeds → "Block Newly Registered Domains"
lookup fails → "Rule <uuid>"
That keeps enrichment helpful without making it critical-path infrastructure.
The key distinction is that retry behaviour improves diagnostics; it must never change the original allow/deny decision.
Related: Cloudflare Gateway Custom Block Page.