INTEGRITY Dokumentace

Chybové odpovědi

Když Cloudflare nemůže dokončit požadavek, vygeneruje chybovou odpověď. Formát závisí na tom, co klient požaduje prostřednictvím Accept hlavička a na úrovni zóny Vlastní chyby konfigurace.

Ve výchozím nastavení jsou chybové odpovědi ve formátu HTML. Klienti, kteří požadují strukturovaný formát (například application/json, application/problem+json, nebo text/markdown) obdrží místo toho strojově čitelnou odpověď. Tato strojově čitelná odpověď zahrnuje všechny Kódy chyb řady 1xxx (které vracejí stavové kódy HTTP 4xx nebo 5xx v závislosti na chybě) a Cloudflare generovanými Chyby řady 5xx (500, 502, 504, 520-526). Odpovědi s chybami 5xx generované původním serverem předává Cloudflare klientovi beze změny.


Vyjednávání obsahu

Cloudflare volí formát odpovědi na základě klienta a jeho Accept hlavičku podle standardní Vyjednávání obsahu HTTP. Pokud je přijatelných více formátů, faktory kvality (q hodnot) určují prioritu. Při stejné hodnotě kvality vítězí typ uvedený jako první.

Accept hlavička byla odeslána Formát odpovědi
application/json JSON (application/json; charset=utf-8)
application/problem+json JSON (application/problem+json; charset=utf-8)
application/json, text/markdown;q=0.9 JSON (vyšší faktor kvality)
text/markdown Markdown (text/markdown; charset=utf-8)
text/markdown, application/json Markdown (stejná kvalita, vyhrává první uvedený)
text/* Markdown
text/html HTML
*/* HTML
Nenastaveno HTML

Strukturované chybové odpovědi jsou dostupné ve všech plánech, včetně plánu Free. Vlastní pravidla chyb pro přepsání těchto odpovědí vyžadují placený plán Cloudflare.


Práce s vlastními chybami

Strukturované chybové odpovědi jsou výchozí pro zóny bez vlastní konfigurace chyb. Zóny, které používají Vlastní chyby si zachovávají plnou kontrolu nad tím, co klienti dostávají.

To, co klient obdrží, závisí na tom, které funkce vlastních chybových stránek máte pro svou zónu nakonfigurované. Podrobnosti najdete v následujících částech.

Žádná vlastní chybová stránka, žádná vlastní pravidla pro chyby

Toto je výchozí nastavení pro většinu zón. Cloudflare vrací svou výchozí chybovou odpověď ve formátu, který klient požaduje.

Klient odesílá Odpověď
Accept: application/json Výchozí strukturovaná odpověď JSON od Cloudflare
Accept: text/markdown Výchozí strukturovaná odpověď Markdown od Cloudflare
Accept: text/html Výchozí chybová stránka HTML od Cloudflare
Ne Accept hlavička Výchozí chybová stránka HTML od Cloudflare

Nakonfigurována chybová stránka, žádná vlastní pravidla pro chyby

Na zóně je nahraná chybová stránka prostřednictvím Cloudflare dashboardu. Nejsou nakonfigurována žádná vlastní pravidla pro chyby. Chybová stránka se zobrazuje všem klientům bez ohledu na Accept hlavičku: Error Pages neprovádějí vyjednávání obsahu.

Klient odesílá Odpověď
Accept: application/json Vaše vlastní chybová stránka HTML
Accept: text/markdown Vaše vlastní chybová stránka HTML
Accept: text/html Vaše vlastní chybová stránka HTML
Ne Accept hlavička Vaše vlastní chybová stránka HTML

Pokud chcete, aby agenti dostávali strukturované odpovědi, a zároveň si chcete zachovat vlastní HTML pro prohlížeče, přidejte Custom Error Rule, které odpovídá Accept hlavičku. Podrobnosti najdete v další části.

Nakonfigurovaná pravidla Custom Error Rules

Zóna má jeden nebo více Vlastní pravidla chyb (dostupné v placených plánech). Mají přednost před Error Pages. Určujete, co se zobrazí, komu a za jakých podmínek.

Klient odesílá Odpověď
Accept: application/json Pokud se pravidlo Custom Error Rule shoduje, odešle se jeho obsah. Pokud se neshoduje žádné pravidlo, použije se Error Page (je-li nastavena), případně strukturovaná odpověď ve formátu JSON.
Accept: text/markdown Pokud se pravidlo Custom Error Rule shoduje, odešle se jeho obsah. Pokud se neshoduje žádné pravidlo, použije se Error Page (je-li nastavena), případně strukturovaná odpověď ve formátu Markdown.
Accept: text/html Pokud se pravidlo Custom Error Rule shoduje, odešle se jeho obsah. Pokud se neshoduje žádné pravidlo, použije se Error Page, případně výchozí HTML.
Ne Accept hlavička Stejný záložní řetězec

Custom Error Rules mohou porovnávat libovolnou hlavičku požadavku, včetně Accept, a může cílit na konkrétní chybové kódy. Ze stejné zóny tak můžete klientům API poskytovat JSON, agentům Markdown a prohlížečům HTML.

Příklad: Vraťte klientům API vlastní odpověď ve formátu JSON při chybě 522

Toto vlastní pravidlo pro chyby odpovídá chybám 522, kdy klient požaduje JSON:

Výraz: (http.response.code eq 522) and (any(http.request.headers["accept"][*] contains "application/json"))

Akce: Vraťte vlastní JSON odpověď ve vlastním formátu chyby.

Toto pravidlo má přednost před výchozí strukturovanou odpovědí JSON i před jakoukoli nakonfigurovanou chybovou stránkou. Klienti, kteří pravidlu neodpovídají (například prohlížeče požadující HTML), přejdou na chybovou stránku nebo výchozí odpověď Cloudflare.

Příklad: Vraťte agentům strukturované odpovědi a prohlížečům vlastní stránku HTML

Pokud má vaše zóna nastavenou Error Page, zobrazuje se všem klientům, včetně agentů požadujících JSON nebo Markdown. Aby agenti místo toho dostávali výchozí strukturované odpovědi Cloudflare, Error Page odstraňte. Bez Error Page Cloudflare respektuje Accept hlavičku automaticky: agenti dostanou strukturovaný JSON nebo Markdown a prohlížeče dostanou HTML.

Pokud potřebujete zachovat Error Page pro prohlížeče, ale agentům chcete poskytovat vlastní strukturovaný obsah, vytvořte Custom Error Rules, které odpovídají Accept hlavičku a poskytovat vlastní obsah ve formátu JSON nebo Markdown. Prohlížeče, které neodpovídají žádnému z pravidel, budou i nadále dostávat vaši vlastní chybovou stránku HTML.

Pořadí priority

Když Cloudflare vygeneruje chybovou odpověď, o tom, co klient obdrží, rozhoduje následující pořadí priorit:

  1. Vlastní pravidla chyb : Pokud pravidlo odpovídá podmínkám chyby a požadavku, je obsloužen obsah tohoto pravidla.
  2. Chybové stránky : Pokud je pro daný typ chyby nakonfigurována stránka Error Page a neodpovídalo žádné vlastní pravidlo chyby (Custom Error Rule), je stránka Error Page obsloužena jako HTML bez ohledu na Accept hlavička.
  3. Strukturované chybové odpovědi : Pokud neodpovídalo žádné vlastní pravidlo chyby a není nakonfigurována žádná stránka Error Page, Cloudflare obslouží svou výchozí odpověď ve formátu, který klient požadoval (JSON, Markdown nebo HTML).

Úplné pořadí priority, včetně pravidel na úrovni účtu oproti pravidlům na úrovni zóny, vlastních blokovacích odpovědí WAF a bezpečnostních výzev, najdete v Vlastní chyby dokumentace.


Příklady

JSON: 522 Connection timed out

{
	"type": "https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-522/",
	"title": "Error 522: Connection timed out",
	"status": 522,
	"detail": "Cloudflare could not establish a TCP connection to the origin server. The TCP handshake timed out, which may indicate the origin is overloaded, firewalling Cloudflare, or unreachable at the network level.",
	"instance": "9f140b785e57c458",
	"error_code": 522,
	"error_name": "connection_timeout",
	"error_category": "origin",
	"ray_id": "9f140b785e57c458",
	"timestamp": "2026-04-24T09:22:40Z",
	"zone": "example.com",
	"cloudflare_error": true,
	"retryable": true,
	"retry_after": 120,
	"owner_action_required": true,
	"what_you_should_do": "**Wait and retry.** Back off for at least 120 seconds. If the error persists, the website operator should verify firewall rules and ensure the origin accepts connections from Cloudflare IP ranges.",
	"footer": "This error was generated by Cloudflare on behalf of the website owner."
}

Markdown: 522 Connection timed out

---
error_code: 522
error_name: connection_timeout
error_category: origin
status: 522
ray_id: 9f140b785e57c458
timestamp: 2026-04-24T09:22:40Z
zone: example.com
cloudflare_error: true
retryable: true
retry_after: 120
owner_action_required: true
---

# Error 522: Connection timed out

## What Happened

Cloudflare could not establish a TCP connection to the origin server. The TCP handshake timed out, which may indicate the origin is overloaded, firewalling Cloudflare, or unreachable at the network level.

## What You Should Do

**Wait and retry.** Back off for at least 120 seconds. If the error persists, the website operator should verify firewall rules and ensure the origin accepts connections from Cloudflare IP ranges.

---

This error was generated by Cloudflare on behalf of the website owner.

Otestovat strukturované chybové odpovědi

Načtěte strukturovanou odpověď ve formátu JSON pro chybu 522:

curl --silent --compressed --header "Accept: application/json" \
  --user-agent "TestAgent/1.0" --header "Accept-Encoding: gzip, deflate" \
  "https://example.com/cdn-cgi/error/522" | jq .

Načtěte strukturovanou odpověď ve formátu Markdown:

curl --silent --compressed --header "Accept: text/markdown" \
  --user-agent "TestAgent/1.0" --header "Accept-Encoding: gzip, deflate" \
  "https://example.com/cdn-cgi/error/522"

Zkontrolujte přítomnost Retry-After hlavičku při chybě, kterou lze opakovat:

curl --silent --compressed --dump-header - --output /dev/null \
  --header "Accept: application/json" --user-agent "TestAgent/1.0" \
  --header "Accept-Encoding: gzip, deflate" \
  "https://example.com/cdn-cgi/error/521" | grep -i retry-after

Pole odpovědi

Odpovědi ve formátu JSON i Markdown obsahují stejnou sadu polí. Odpovědi JSON je vracejí jako plochý objekt, odpovědi Markdown je umisťují do YAML frontmatteru následovaného textovými částmi. Definice polí uvedené níže platí pro oba formáty.

Odpovědi JSON se řídí RFC 9457 (Problem Details for HTTP APIs). Jakýkoli HTTP klient, který rozumí Problem Details, dokáže analyzovat pět standardních členů (type, title, status, detail, instance) bez kódu specifického pro Cloudflare.

Členové standardu RFC 9457

Pole Typ Popis
type string URI odkazující na dokumentaci Cloudflare k tomuto chybovému kódu.
title string Stručný souhrn, například "Error 522: Connection timed out".
status celé číslo Stavový kód HTTP dané odpovědi.
detail string Vysvětlení v prostém textu, co se stalo a která strana za to nese odpovědnost.
instance string Ray ID identifikující tento konkrétní výskyt chyby.

Členové rozšíření Cloudflare

Pole Typ Popis
error_code celé číslo Chybový kód Cloudflare (například 522, 1015).
error_name string Strojově čitelný název v snake_case (například connection_timeout, rate_limited). Stabilní, vhodné pro programové porovnávání.
error_category string Klasifikace poruch. Další informace naleznete v Kategorie chyb. Stabilní: vhodné pro programové porovnávání.
ray_id string Stejná hodnota jako instance. Uvedeno kvůli kompatibilitě se stávajícími nástroji Cloudflare.
timestamp string Časové razítko ve formátu ISO 8601 udávající, kdy chyba vznikla.
zone string Požadovaný hostitelský název.
cloudflare_error boolean Vždy true. Potvrzuje, že tuto chybu vygeneroval Cloudflare, nikoli origin server.
retryable boolean Zda je chyba dočasná a požadavek lze zopakovat.
retry_after celé číslo nebo null Počet sekund čekání před opakováním. Uvedeno pouze v případě, že retryable je true. Odpovídá Retry-After hodnota HTTP hlavičky.
owner_action_required boolean Zda musí provozovatel webu k vyřešení chyby podniknout nějaký krok.
what_you_should_do string Praktické pokyny pro klienta: co dělat dál, zda opakovat pokus a kdo může problém vyřešit.
footer string Řádek s atribucí.

Struktura specifická pro Markdown

Odpovědi ve formátu Markdown umisťují tato pole do YAML frontmatter (mezi --- oddělovačů) a poté následují tři textové oddíly:

Frontmatter vynechává standardní členy RFC 9457 (type, title, instance) a footer pole, protože jsou buď redundantní vůči textu, nebo se na formát Markdown nevztahují.


Kategorie chyb

error_category pole klasifikuje chybu, takže klienti mohou řídit opakování požadavků a eskalaci, aniž by museli parsovat textová pole.

Kategorie chyb řady 5xx

Kategorie Kódy Význam Opakovat?
origin 502, 504, 520-524 Zodpovědnost nese origin server. Přechodná porucha infrastruktury. Ano. Zpomalte pomocí retry_after.
cloudflare 500 Na straně Cloudflare došlo k interní chybě. Origin server nemusel být nutně jejím zdrojem. Ano. Krátké opakování (30 s).
ssl 525, 526 Konfigurace TLS origin serveru je vadná (selhání handshake nebo neplatný certifikát). Ne. Opakování nepomůže, dokud operátor neopraví konfiguraci TLS.

Kategorie chyb řady 1xxx

Kategorie Význam Příklady kódů
access_denied Blokování IP adres, blokování zemí, pravidla brány firewall 1005, 1006, 1007, 1008, 1010, 1012, 1106-1109
rate_limit Omezení četnosti požadavků 1015, 1025, 1027, 1200
dns Chyby překladu DNS 1001, 1016
config Chyby konfigurace zóny nebo origin serveru 1004, 1014, 1033, 1043, 1047, 1049
tls Chyby TLS na straně klienta (verze, šifra, certifikát) 1017, 1028, 1029, 1044
legal Právní omezení (DMCA, blokace podle zemí) 1026, 1039
worker Chyby skriptu Worker 1042, 1100, 1101, 1102, 1103, 1104, 1105
rewrite Chyby pravidel přepisu URL 1036, 1037
snippet Chyby konfigurace snippetů 1201, 1202, 1203, 1204, 1205, 1206
unsupported Nepodporované funkce nebo protokoly 1045

Hlavička Retry-After

Mezi opakovatelné chybové kódy patří standardní Retry-After HTTP hlavička odpovědi. Hodnota hlavičky v sekundách odpovídá retry_after pole v těle odpovědi.

Hodnoty Retry-After řady 5xx

Kód retry_after (v sekundách)
500 30
502 60
504 120
520 60
521 120
522 120
523 120
524 120
525 N/A (nelze opakovat)
526 N/A (nelze opakovat)

Kódy, které nelze opakovat (525, 526), neobsahují Retry-After hlavička.

Hodnoty Retry-After řady 1xxx

Šest opakovatelných chybových kódů řady 1xxx generuje Retry-After:

Kód retry_after (v sekundách) Název chyby
1004 120 Chyba překladu DNS
1015 30 Rate limited
1033 120 Chyba Argo Tunnel
1038 60 Překročen limit hlaviček HTTP
1200 60 Limit připojení k mezipaměti
1205 5 Příliš mnoho přesměrování

Všechny ostatní chybové kódy řady 1xxx nelze opakovat a neobsahují Retry-After hlavička.

Pokud pravidlo WAF pro omezení frekvence požadavků již nastavilo dynamickou Retry-After hodnota v odpovědi, má tato hodnota přednost před výchozí hodnotou.


Další zdroje