@master4n/http-status
Advanced tools
| type HttpStatusCategory = 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension'; | ||
| type HttpStatusSource = 'IANA' | 'Cloudflare' | 'Nginx'; | ||
| type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'CONNECT' | 'TRACE'; | ||
| type RetryStrategy = 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after'; | ||
| /** | ||
| * Cacheability classification by status code alone, per RFC 9111 §4.2.2. | ||
| * `'heuristic'`: a cache MAY store the response without explicit freshness | ||
| * headers. `'uncacheable'`: not cacheable by status alone (explicit | ||
| * `Cache-Control`/`Expires` headers may still apply). | ||
| */ | ||
| type Cacheability = 'heuristic' | 'uncacheable'; | ||
| interface RelatedHeader { | ||
| readonly name: string; | ||
| readonly required: boolean; | ||
| readonly purpose: string; | ||
| } | ||
| /** | ||
| * Authored guidance. NOT derived from the spec. Treat as recommendation, not normative fact. | ||
| */ | ||
| interface HttpStatusGuidance { | ||
| readonly isRetryable: boolean; | ||
| readonly retryStrategy: RetryStrategy; | ||
| readonly agentAction: string; | ||
| readonly commonCauses: readonly string[]; | ||
| readonly relatedStatuses: readonly number[]; | ||
| } | ||
| /** | ||
| * Spec-derivable metadata. Every field is backed by `specUrl`. | ||
| */ | ||
| interface HttpStatusMetadata { | ||
| readonly code: number; | ||
| readonly phrase: string; | ||
| readonly category: HttpStatusCategory; | ||
| readonly source: HttpStatusSource; | ||
| readonly rfc: string | null; | ||
| readonly specUrl: string; | ||
| readonly description: string; | ||
| readonly expectsEmptyBody: boolean; | ||
| /** | ||
| * Cacheability by status alone, per RFC 9111 §4.2.2: `'heuristic'` if a cache | ||
| * MAY store the response without explicit freshness headers, else | ||
| * `'uncacheable'`. (Renamed from `isCacheable: boolean | 'heuristic'` in 2.0.1 | ||
| * for a clean string enum; the `isCacheable()` predicate in `/utils` still | ||
| * exists and returns a boolean.) | ||
| */ | ||
| readonly cacheability: Cacheability; | ||
| readonly requiresAuth: boolean; | ||
| readonly safeForMethods: readonly HttpMethod[] | 'all'; | ||
| readonly relatedHeaders: readonly RelatedHeader[]; | ||
| readonly aliases: readonly string[]; | ||
| readonly deprecated: boolean; | ||
| readonly guidance: HttpStatusGuidance; | ||
| } | ||
| type HttpStatusRegistryMap = Readonly<Record<number, HttpStatusMetadata>>; | ||
| export type { Cacheability as C, HttpMethod as H, RelatedHeader as R, HttpStatusCategory as a, HttpStatusGuidance as b, HttpStatusMetadata as c, HttpStatusRegistryMap as d, HttpStatusSource as e, RetryStrategy as f }; |
| type HttpStatusCategory = 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension'; | ||
| type HttpStatusSource = 'IANA' | 'Cloudflare' | 'Nginx'; | ||
| type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'CONNECT' | 'TRACE'; | ||
| type RetryStrategy = 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after'; | ||
| /** | ||
| * Cacheability classification by status code alone, per RFC 9111 §4.2.2. | ||
| * `'heuristic'`: a cache MAY store the response without explicit freshness | ||
| * headers. `'uncacheable'`: not cacheable by status alone (explicit | ||
| * `Cache-Control`/`Expires` headers may still apply). | ||
| */ | ||
| type Cacheability = 'heuristic' | 'uncacheable'; | ||
| interface RelatedHeader { | ||
| readonly name: string; | ||
| readonly required: boolean; | ||
| readonly purpose: string; | ||
| } | ||
| /** | ||
| * Authored guidance. NOT derived from the spec. Treat as recommendation, not normative fact. | ||
| */ | ||
| interface HttpStatusGuidance { | ||
| readonly isRetryable: boolean; | ||
| readonly retryStrategy: RetryStrategy; | ||
| readonly agentAction: string; | ||
| readonly commonCauses: readonly string[]; | ||
| readonly relatedStatuses: readonly number[]; | ||
| } | ||
| /** | ||
| * Spec-derivable metadata. Every field is backed by `specUrl`. | ||
| */ | ||
| interface HttpStatusMetadata { | ||
| readonly code: number; | ||
| readonly phrase: string; | ||
| readonly category: HttpStatusCategory; | ||
| readonly source: HttpStatusSource; | ||
| readonly rfc: string | null; | ||
| readonly specUrl: string; | ||
| readonly description: string; | ||
| readonly expectsEmptyBody: boolean; | ||
| /** | ||
| * Cacheability by status alone, per RFC 9111 §4.2.2: `'heuristic'` if a cache | ||
| * MAY store the response without explicit freshness headers, else | ||
| * `'uncacheable'`. (Renamed from `isCacheable: boolean | 'heuristic'` in 2.0.1 | ||
| * for a clean string enum; the `isCacheable()` predicate in `/utils` still | ||
| * exists and returns a boolean.) | ||
| */ | ||
| readonly cacheability: Cacheability; | ||
| readonly requiresAuth: boolean; | ||
| readonly safeForMethods: readonly HttpMethod[] | 'all'; | ||
| readonly relatedHeaders: readonly RelatedHeader[]; | ||
| readonly aliases: readonly string[]; | ||
| readonly deprecated: boolean; | ||
| readonly guidance: HttpStatusGuidance; | ||
| } | ||
| type HttpStatusRegistryMap = Readonly<Record<number, HttpStatusMetadata>>; | ||
| export type { Cacheability as C, HttpMethod as H, RelatedHeader as R, HttpStatusCategory as a, HttpStatusGuidance as b, HttpStatusMetadata as c, HttpStatusRegistryMap as d, HttpStatusSource as e, RetryStrategy as f }; |
+24
-0
| # Changelog | ||
| ## 2.0.1 | ||
| API consistency for cacheability. (Released as a patch, but note the type changes | ||
| below are technically breaking for code that read the old shapes.) | ||
| ### Changed | ||
| - **`isCacheable(code)` now returns a plain `boolean`** (was `boolean | 'heuristic'`). | ||
| It returns `true` for heuristically-cacheable codes, consistent with the other | ||
| `is*` predicates. Code doing `isCacheable(c) === 'heuristic'` should switch to | ||
| the new `cacheability()` function. | ||
| - **Metadata field `isCacheable` renamed to `cacheability`** with a clean string | ||
| enum: `'heuristic' | 'uncacheable'` (was `boolean | 'heuristic'`, which only ever | ||
| held `'heuristic'` or `false` in practice). Applies to every registry entry and | ||
| to `http-status-registry.json`. | ||
| ### Added | ||
| - **`cacheability(code): 'heuristic' | 'uncacheable'`** — precise RFC 9111 §4.2.2 | ||
| classification (the string form of `isCacheable`). | ||
| - **`Cacheability` type** exported from the package root and `/utils`. | ||
| - Documented the predicate input contract: predicates expect a real status int and | ||
| do not validate the domain (use `getMetadata` to detect unknown codes). | ||
| ## 2.0.0 — BREAKING | ||
@@ -4,0 +28,0 @@ |
@@ -1,2 +0,2 @@ | ||
| 'use strict';var r={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},e="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",t={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}}; | ||
| 'use strict';var r={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},e="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",t={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}}; | ||
| exports.CloudflareRegistry=t;exports.CloudflareStatus=r; |
@@ -1,2 +0,2 @@ | ||
| import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.cjs'; | ||
| import { c as HttpStatusMetadata } from '../types-4vBUR0dr.cjs'; | ||
@@ -3,0 +3,0 @@ declare const CloudflareStatus: { |
@@ -1,2 +0,2 @@ | ||
| import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.js'; | ||
| import { c as HttpStatusMetadata } from '../types-4vBUR0dr.js'; | ||
@@ -3,0 +3,0 @@ declare const CloudflareStatus: { |
@@ -1,2 +0,2 @@ | ||
| var r={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},e="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",t={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}}; | ||
| var r={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},e="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",t={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${e}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}}; | ||
| export{t as CloudflareRegistry,r as CloudflareStatus}; |
+1
-1
@@ -1,2 +0,2 @@ | ||
| 'use strict';var r={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}}; | ||
| 'use strict';var r={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}}; | ||
| exports.IanaRegistry=a;exports.IanaStatus=r; |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.cjs'; | ||
| import { c as HttpStatusMetadata } from '../types-4vBUR0dr.cjs'; | ||
@@ -3,0 +3,0 @@ declare const IanaStatus: { |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.js'; | ||
| import { c as HttpStatusMetadata } from '../types-4vBUR0dr.js'; | ||
@@ -3,0 +3,0 @@ declare const IanaStatus: { |
+1
-1
@@ -1,2 +0,2 @@ | ||
| var r={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}}; | ||
| var r={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}}; | ||
| export{a as IanaRegistry,r as IanaStatus}; |
+2
-2
@@ -1,2 +0,2 @@ | ||
| 'use strict';var p={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};var f={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},r="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",s={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};var g={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},o={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};var i=Object.freeze({...a,...s,...o}),R=t=>i[t];var n=t=>t>=100&&t<200,E=t=>t>=200&&t<300,T=t=>t>=300&&t<400,v=t=>t>=400&&t<500,x=t=>t>=500&&t<600,q=t=>t>=400,c=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),I=t=>c.has(t),l=new Set([204,205,304,444,499]),N=t=>n(t)||l.has(t),d=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),U=t=>d.has(t)?"heuristic":false,u=new Set([401,407,496,511]),F=t=>u.has(t); | ||
| exports.CloudflareRegistry=s;exports.CloudflareStatus=f;exports.CompleteRegistry=i;exports.IanaRegistry=a;exports.IanaStatus=p;exports.NginxRegistry=o;exports.NginxStatus=g;exports.getMetadata=R;exports.hasEmptyBody=N;exports.isCacheable=U;exports.isClientError=v;exports.isError=q;exports.isInformational=n;exports.isRedirection=T;exports.isRetryable=I;exports.isServerError=x;exports.isSuccess=E;exports.requiresAuth=F; | ||
| 'use strict';var p={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};var f={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},r="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",s={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};var g={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},o={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};var n=Object.freeze({...a,...s,...o}),S=t=>n[t];var c=t=>t>=100&&t<200,C=t=>t>=200&&t<300,T=t=>t>=300&&t<400,v=t=>t>=400&&t<500,x=t=>t>=500&&t<600,q=t=>t>=400,l=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),I=t=>l.has(t),d=new Set([204,205,304,444,499]),N=t=>c(t)||d.has(t),i=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),U=t=>i.has(t)?"heuristic":"uncacheable",F=t=>i.has(t),u=new Set([401,407,496,511]),w=t=>u.has(t); | ||
| exports.CloudflareRegistry=s;exports.CloudflareStatus=f;exports.CompleteRegistry=n;exports.IanaRegistry=a;exports.IanaStatus=p;exports.NginxRegistry=o;exports.NginxStatus=g;exports.cacheability=U;exports.getMetadata=S;exports.hasEmptyBody=N;exports.isCacheable=F;exports.isClientError=v;exports.isError=q;exports.isInformational=c;exports.isRedirection=T;exports.isRetryable=I;exports.isServerError=x;exports.isSuccess=C;exports.requiresAuth=w; |
+3
-3
@@ -1,7 +0,7 @@ | ||
| import { d as HttpStatusRegistryMap, c as HttpStatusMetadata } from './types-D9bAZ7ge.cjs'; | ||
| export { H as HttpMethod, a as HttpStatusCategory, b as HttpStatusGuidance, e as HttpStatusSource, R as RelatedHeader, f as RetryStrategy } from './types-D9bAZ7ge.cjs'; | ||
| import { d as HttpStatusRegistryMap, c as HttpStatusMetadata } from './types-4vBUR0dr.cjs'; | ||
| export { C as Cacheability, H as HttpMethod, a as HttpStatusCategory, b as HttpStatusGuidance, e as HttpStatusSource, R as RelatedHeader, f as RetryStrategy } from './types-4vBUR0dr.cjs'; | ||
| export { IanaRegistry, IanaStatus, IanaStatusCode, IanaStatusName } from './iana/index.cjs'; | ||
| export { CloudflareRegistry, CloudflareStatus, CloudflareStatusCode, CloudflareStatusName } from './cloudflare/index.cjs'; | ||
| export { NginxRegistry, NginxStatus, NginxStatusCode, NginxStatusName } from './nginx/index.cjs'; | ||
| export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth } from './utils/index.cjs'; | ||
| export { cacheability, hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth } from './utils/index.cjs'; | ||
@@ -8,0 +8,0 @@ declare const CompleteRegistry: HttpStatusRegistryMap; |
+3
-3
@@ -1,7 +0,7 @@ | ||
| import { d as HttpStatusRegistryMap, c as HttpStatusMetadata } from './types-D9bAZ7ge.js'; | ||
| export { H as HttpMethod, a as HttpStatusCategory, b as HttpStatusGuidance, e as HttpStatusSource, R as RelatedHeader, f as RetryStrategy } from './types-D9bAZ7ge.js'; | ||
| import { d as HttpStatusRegistryMap, c as HttpStatusMetadata } from './types-4vBUR0dr.js'; | ||
| export { C as Cacheability, H as HttpMethod, a as HttpStatusCategory, b as HttpStatusGuidance, e as HttpStatusSource, R as RelatedHeader, f as RetryStrategy } from './types-4vBUR0dr.js'; | ||
| export { IanaRegistry, IanaStatus, IanaStatusCode, IanaStatusName } from './iana/index.js'; | ||
| export { CloudflareRegistry, CloudflareStatus, CloudflareStatusCode, CloudflareStatusName } from './cloudflare/index.js'; | ||
| export { NginxRegistry, NginxStatus, NginxStatusCode, NginxStatusName } from './nginx/index.js'; | ||
| export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth } from './utils/index.js'; | ||
| export { cacheability, hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth } from './utils/index.js'; | ||
@@ -8,0 +8,0 @@ declare const CompleteRegistry: HttpStatusRegistryMap; |
+2
-2
@@ -1,2 +0,2 @@ | ||
| var p={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,isCacheable:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};var f={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},r="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",s={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};var g={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},o={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};var i=Object.freeze({...a,...s,...o}),R=t=>i[t];var n=t=>t>=100&&t<200,E=t=>t>=200&&t<300,T=t=>t>=300&&t<400,v=t=>t>=400&&t<500,x=t=>t>=500&&t<600,q=t=>t>=400,c=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),I=t=>c.has(t),l=new Set([204,205,304,444,499]),N=t=>n(t)||l.has(t),d=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),U=t=>d.has(t)?"heuristic":false,u=new Set([401,407,496,511]),F=t=>u.has(t); | ||
| export{s as CloudflareRegistry,f as CloudflareStatus,i as CompleteRegistry,a as IanaRegistry,p as IanaStatus,o as NginxRegistry,g as NginxStatus,R as getMetadata,N as hasEmptyBody,U as isCacheable,v as isClientError,q as isError,n as isInformational,T as isRedirection,I as isRetryable,x as isServerError,E as isSuccess,F as requiresAuth}; | ||
| var p={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,CONTENT_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_CONTENT:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511},e=t=>`https://datatracker.ietf.org/doc/html/rfc9110#section-${t}`,a={100:{code:100,phrase:"Continue",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.1"),description:"The initial part of a request has been received and the client should continue to send the remainder of the request, or ignore the response if the request is already complete.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Expect",required:false,purpose:"Originating request header that triggers a 100 response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Continue sending the request body; treat as a successful handshake.",commonCauses:["Client sent Expect: 100-continue before a large body."],relatedStatuses:[417]}},101:{code:101,phrase:"Switching Protocols",category:"Informational",source:"IANA",rfc:"RFC9110",specUrl:e("15.2.2"),description:"The server understands and is willing to comply with the client request, via the Upgrade header field, for a change in the application protocol being used on this connection.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Lists the protocol(s) being switched to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Switch to the protocol named in the Upgrade header (e.g., WebSocket).",commonCauses:["Client requested protocol upgrade (WebSocket, HTTP/2 cleartext)."],relatedStatuses:[426]}},102:{code:102,phrase:"Processing",category:"Informational",source:"IANA",rfc:"RFC2518",specUrl:"https://datatracker.ietf.org/doc/html/rfc2518#section-10.1",description:"WebDAV interim response indicating that the server has accepted the complete request but has not yet completed it. Deprecated by some clients.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Keep the connection open and wait for the final response.",commonCauses:["Long-running WebDAV operation."],relatedStatuses:[]}},103:{code:103,phrase:"Early Hints",category:"Informational",source:"IANA",rfc:"RFC8297",specUrl:"https://datatracker.ietf.org/doc/html/rfc8297#section-2",description:"Used to return some response headers before the final HTTP message, typically to allow the client to preload resources via Link headers.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Link",required:false,purpose:"Preload/preconnect hints sent before the final response."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Begin preloading hinted resources while awaiting the final response.",commonCauses:["Server-driven preload hints to reduce page load time."],relatedStatuses:[]}},200:{code:200,phrase:"OK",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.1"),description:"The request has succeeded. The payload sent depends on the request method.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse and use the response body.",commonCauses:["Standard successful request."],relatedStatuses:[201,204,206]}},201:{code:201,phrase:"Created",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.2"),description:"The request has been fulfilled and has resulted in one or more new resources being created. The primary resource URI is given by Location.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"URI of the newly created resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Read the Location header for the new resource URI.",commonCauses:["Successful POST or PUT that created a resource."],relatedStatuses:[200,202]}},202:{code:202,phrase:"Accepted",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.3"),description:"The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Poll the indicated status endpoint or wait for an async callback.",commonCauses:["Async job submission, batch processing."],relatedStatuses:[201,303]}},203:{code:203,phrase:"Non-Authoritative Information",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.4"),description:"The request was successful but the enclosed payload has been modified by a transforming proxy from that of the origin server.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as 200 OK but be aware the body may have been transformed by an intermediary.",commonCauses:["Transforming proxy modified the response."],relatedStatuses:[200]}},204:{code:204,phrase:"No Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.5"),description:"The server has successfully fulfilled the request and there is no additional content to send in the response payload body.",expectsEmptyBody:true,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not attempt to parse a body; treat as success.",commonCauses:["Successful DELETE or PUT/PATCH that returns no body."],relatedStatuses:[200,205]}},205:{code:205,phrase:"Reset Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.6"),description:"The server has fulfilled the request and desires that the user agent reset the document view which caused the request to be sent.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Clear the originating form or input view.",commonCauses:["Form submission that should reset on success."],relatedStatuses:[204]}},206:{code:206,phrase:"Partial Content",category:"Success",source:"IANA",rfc:"RFC9110",specUrl:e("15.3.7"),description:"The server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:true,purpose:"Indicates which byte range is in the body."},{name:"Accept-Ranges",required:false,purpose:"Indicates supported range units."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Assemble the byte range with previously fetched parts; resume support.",commonCauses:["Range request for video, large file, or resumable download."],relatedStatuses:[200,416]}},207:{code:207,phrase:"Multi-Status",category:"Success",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.1",description:"WebDAV: provides status for multiple independent operations in a single response (multistatus XML).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Parse the multistatus XML body for per-resource status codes.",commonCauses:["WebDAV PROPFIND, PROPPATCH, COPY, MOVE, DELETE on collections."],relatedStatuses:[208]}},208:{code:208,phrase:"Already Reported",category:"Success",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.1",description:"WebDAV: used inside a 207 Multi-Status response to avoid repeatedly enumerating internal members of multiple bindings to the same collection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as already-enumerated; do not re-fetch.",commonCauses:["WebDAV bindings already reported in the same multistatus."],relatedStatuses:[207]}},226:{code:226,phrase:"IM Used",category:"Success",source:"IANA",rfc:"RFC3229",specUrl:"https://datatracker.ietf.org/doc/html/rfc3229#section-10.4.1",description:"The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:["GET"],relatedHeaders:[{name:"IM",required:false,purpose:"Instance manipulation applied."},{name:"Delta-Base",required:false,purpose:"Base entity tag for delta encoding."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Apply the delta to the cached representation.",commonCauses:["Delta-encoded HTTP response."],relatedStatuses:[200]}},300:{code:300,phrase:"Multiple Choices",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.1"),description:"The target resource has more than one representation, each with its own more specific identifier, and information about the alternatives is provided.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:false,purpose:"Server-preferred alternative URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Pick a representation from the listed alternatives or follow Location if provided.",commonCauses:["Content negotiation with multiple acceptable variants."],relatedStatuses:[301,302,303]}},301:{code:301,phrase:"Moved Permanently",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.2"),description:"The target resource has been assigned a new permanent URI and any future references to this resource ought to use the enclosed URI.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location; update bookmarks/links to the new URI.",commonCauses:["Permanent URL change, domain migration, HTTPS upgrade."],relatedStatuses:[308,302]}},302:{code:302,phrase:"Found",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.3"),description:"The target resource resides temporarily under a different URI. The client should continue to use the original request URI for future requests.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:["Moved Temporarily"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location for this request only; do not cache the redirect.",commonCauses:["Temporary redirect, post-login redirect."],relatedStatuses:[303,307]}},303:{code:303,phrase:"See Other",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.4"),description:"The server is redirecting the user agent to a different resource, as indicated by Location, that is intended to provide an indirect response to the original request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Target URI to GET."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Issue a GET to Location regardless of the original method.",commonCauses:["Post/Redirect/Get pattern after form submission."],relatedStatuses:[302,307]}},304:{code:304,phrase:"Not Modified",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.5"),description:"Indicates that the conditional request would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"ETag",required:false,purpose:"Validator matching the cached representation."},{name:"Cache-Control",required:false,purpose:"Freshness directives."},{name:"Vary",required:false,purpose:"Headers that affected selection."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Serve from the local cache; the cached representation is still fresh.",commonCauses:["Conditional GET with If-None-Match or If-Modified-Since matched."],relatedStatuses:[200,412]}},305:{code:305,phrase:"Use Proxy",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.6"),description:"Deprecated. The requested resource must be accessed through a specified proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Ignore; modern clients must not honor 305 for security reasons.",commonCauses:["Legacy proxy configuration."],relatedStatuses:[]}},307:{code:307,phrase:"Temporary Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.8"),description:"The target resource resides temporarily under a different URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"Temporary URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method and body.",commonCauses:["Temporary redirect where method preservation matters (e.g., POST)."],relatedStatuses:[302,308]}},308:{code:308,phrase:"Permanent Redirect",category:"Redirection",source:"IANA",rfc:"RFC9110",specUrl:e("15.4.9"),description:"The target resource has been assigned a new permanent URI and the user agent MUST NOT change the request method when following the redirect.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Location",required:true,purpose:"New permanent URI."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Follow Location with the same method; update stored references.",commonCauses:["Permanent move where method preservation matters."],relatedStatuses:[301,307]}},400:{code:400,phrase:"Bad Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.1"),description:"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed syntax, invalid framing).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Fix the request payload or syntax; do not retry as-is.",commonCauses:["Malformed JSON","Missing required field","Invalid header syntax"],relatedStatuses:[422,415]}},401:{code:401,phrase:"Unauthorized",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.2"),description:"The request has not been applied because it lacks valid authentication credentials for the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"WWW-Authenticate",required:true,purpose:"Challenge describing the auth scheme."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Acquire valid credentials and retry with an Authorization header.",commonCauses:["Missing or expired token","Wrong credentials","Token revoked"],relatedStatuses:[403,407]}},402:{code:402,phrase:"Payment Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.3"),description:"Reserved for future use. Originally intended for digital payment systems.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface payment/billing requirement to the user; do not auto-retry.",commonCauses:["API quota exhausted on paid tier","Subscription expired"],relatedStatuses:[403,429]}},403:{code:403,phrase:"Forbidden",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.4"),description:"The server understood the request but refuses to authorize it. Re-authenticating will not help.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Do not retry; the principal lacks permission for this resource.",commonCauses:["Insufficient role/scope","IP blocked","CSRF check failed"],relatedStatuses:[401,451]}},404:{code:404,phrase:"Not Found",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.5"),description:"The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Verify the URL; do not retry unless the resource is expected to appear later.",commonCauses:["Typo in URL","Resource deleted","Privacy-preserving hide of 403"],relatedStatuses:[410,403]}},405:{code:405,phrase:"Method Not Allowed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.6"),description:"The method received in the request-line is known by the origin server but not supported by the target resource.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Allow",required:true,purpose:"Lists the methods supported by the target resource."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Inspect Allow header and reissue with a permitted method.",commonCauses:["Wrong HTTP verb for the endpoint."],relatedStatuses:[501]}},406:{code:406,phrase:"Not Acceptable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.7"),description:"The target resource does not have a current representation that would be acceptable to the user agent according to the proactive negotiation header fields.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Accept",required:false,purpose:"Originating preference header."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Relax Accept/Accept-Language constraints and retry.",commonCauses:["No representation matches the client's Accept headers."],relatedStatuses:[415]}},407:{code:407,phrase:"Proxy Authentication Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.8"),description:"Similar to 401 but indicates that the client needs to authenticate itself in order to use a proxy.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[{name:"Proxy-Authenticate",required:true,purpose:"Proxy auth challenge."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Supply Proxy-Authorization and retry.",commonCauses:["Corporate proxy requiring authentication."],relatedStatuses:[401]}},408:{code:408,phrase:"Request Timeout",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.9"),description:"The server did not receive a complete request message within the time that it was prepared to wait.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry the request with backoff; consider increasing client timeout.",commonCauses:["Slow client","Network congestion","Idle keep-alive connection closed"],relatedStatuses:[504]}},409:{code:409,phrase:"Conflict",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.10"),description:"The request could not be completed due to a conflict with the current state of the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-read the current resource state and resolve the conflict before resubmitting.",commonCauses:["Concurrent edit collision","Duplicate resource creation","Version mismatch"],relatedStatuses:[412,428]}},410:{code:410,phrase:"Gone",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.11"),description:"Access to the target resource is no longer available at the origin server and this condition is likely to be permanent.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove any cached references; do not retry.",commonCauses:["Permanently deleted resource."],relatedStatuses:[404]}},411:{code:411,phrase:"Length Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.12"),description:"The server refuses to accept the request without a defined Content-Length.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Content-Length",required:true,purpose:"Length of the request body in octets."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add Content-Length and retry.",commonCauses:["Chunked transfer rejected by server."],relatedStatuses:[]}},412:{code:412,phrase:"Precondition Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.13"),description:"One or more conditions given in the request header fields evaluated to false when tested on the server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"If-Match",required:false,purpose:"Originating precondition."},{name:"If-Unmodified-Since",required:false,purpose:"Originating precondition."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-fetch current ETag/Last-Modified and retry with the new validator.",commonCauses:["Stale If-Match","Optimistic concurrency control mismatch"],relatedStatuses:[409,428]}},413:{code:413,phrase:"Content Too Large",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.14"),description:"The server is refusing to process a request because the request content is larger than the server is willing or able to process.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates when the condition may be temporary."}],aliases:["Payload Too Large","Request Entity Too Large"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Reduce body size, chunk the upload, or use a different endpoint.",commonCauses:["Upload exceeds server limit."],relatedStatuses:[]}},414:{code:414,phrase:"URI Too Long",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.15"),description:"The server is refusing to service the request because the request-target is longer than the server is willing to interpret.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Request-URI Too Long"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Shorten the URL; move parameters into a POST body.",commonCauses:["Excessive query string","Loop generating long redirect URI"],relatedStatuses:[]}},415:{code:415,phrase:"Unsupported Media Type",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.16"),description:"The server is refusing to service the request because the content is in a format not supported by this method on the target resource.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["POST","PUT","PATCH"],relatedHeaders:[{name:"Accept",required:false,purpose:"Indicates supported response types."},{name:"Accept-Encoding",required:false,purpose:"Indicates supported encodings."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Set Content-Type to a supported value and retry.",commonCauses:["Wrong Content-Type","Unsupported encoding"],relatedStatuses:[406]}},416:{code:416,phrase:"Range Not Satisfiable",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.17"),description:"None of the ranges in the request's Range header field overlap the current extent of the selected resource, or the set of ranges requested has been rejected.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:["GET","HEAD"],relatedHeaders:[{name:"Content-Range",required:false,purpose:"Total size of the representation."}],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Re-check the resource length and request a valid range.",commonCauses:["Range beyond resource length."],relatedStatuses:[206]}},417:{code:417,phrase:"Expectation Failed",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.18"),description:"The expectation given in the request's Expect header field could not be met by at least one of the inbound servers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Remove the Expect header and retry.",commonCauses:["Server does not support Expect: 100-continue."],relatedStatuses:[100]}},418:{code:418,phrase:"I'm a teapot",category:"Client Error",source:"IANA",rfc:"RFC2324",specUrl:"https://datatracker.ietf.org/doc/html/rfc2324#section-2.3.2",description:"Any attempt to brew coffee with a teapot should result in the error code 418 I'm a teapot. A joke status from the Hyper Text Coffee Pot Control Protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a humorous easter egg or anti-bot signal; do not retry.",commonCauses:["Server is signaling a refusal humorously."],relatedStatuses:[]}},421:{code:421,phrase:"Misdirected Request",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.20"),description:"The request was directed at a server that is not able to produce a response. This can be sent by a server that is not configured to produce responses for the combination of scheme and authority included in the request URI.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Re-resolve the host and open a new connection before retrying.",commonCauses:["HTTP/2 connection coalescing to wrong origin."],relatedStatuses:[]}},422:{code:422,phrase:"Unprocessable Content",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.21"),description:"The server understands the content type of the request content and the syntax of the request content is correct, but it was unable to process the contained instructions.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:["Unprocessable Entity"],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Validate semantic constraints (e.g., schema validation errors) and resubmit.",commonCauses:["Schema validation failure","Business rule violation"],relatedStatuses:[400]}},423:{code:423,phrase:"Locked",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.3",description:"WebDAV: the source or destination resource is locked.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Acquire the lock or wait for it to release, then retry.",commonCauses:["WebDAV resource locked by another client."],relatedStatuses:[424]}},424:{code:424,phrase:"Failed Dependency",category:"Client Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.4",description:"WebDAV: the method could not be performed on the resource because the requested action depended on another action which failed.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Resolve the failing prerequisite action first.",commonCauses:["Prior WebDAV operation in the same request failed."],relatedStatuses:[423]}},425:{code:425,phrase:"Too Early",category:"Client Error",source:"IANA",rfc:"RFC8470",specUrl:"https://datatracker.ietf.org/doc/html/rfc8470#section-5.2",description:"Indicates that the server is unwilling to risk processing a request that might be replayed (e.g., TLS 1.3 early data).",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Early-Data",required:false,purpose:"Indicates the request was sent in TLS early data."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Retry the request after the TLS handshake completes.",commonCauses:["Request sent in TLS 1.3 0-RTT early data."],relatedStatuses:[]}},426:{code:426,phrase:"Upgrade Required",category:"Client Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.5.22"),description:"The server refuses to perform the request using the current protocol but might be willing to do so after the client upgrades to a different protocol.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Upgrade",required:true,purpose:"Protocols the server is willing to switch to."},{name:"Connection",required:true,purpose:'Must include "Upgrade".'}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Upgrade to the protocol indicated in Upgrade and retry.",commonCauses:["Server requires HTTPS or HTTP/2."],relatedStatuses:[101]}},428:{code:428,phrase:"Precondition Required",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-3",description:"The origin server requires the request to be conditional. Intended to prevent the lost update problem.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add If-Match or If-Unmodified-Since and retry.",commonCauses:["Server enforces optimistic concurrency control."],relatedStatuses:[412]}},429:{code:429,phrase:"Too Many Requests",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-4",description:'The user has sent too many requests in a given amount of time ("rate limiting").',expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long to wait before retrying."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Wait the duration in Retry-After (or back off exponentially) and retry.",commonCauses:["Rate limit exceeded."],relatedStatuses:[503,509]}},431:{code:431,phrase:"Request Header Fields Too Large",category:"Client Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-5",description:"The server is unwilling to process the request because its header fields are too large.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim cookies/headers and retry.",commonCauses:["Oversized cookie jar","Long Authorization token"],relatedStatuses:[]}},451:{code:451,phrase:"Unavailable For Legal Reasons",category:"Client Error",source:"IANA",rfc:"RFC7725",specUrl:"https://datatracker.ietf.org/doc/html/rfc7725#section-3",description:"The server is denying access to the resource as a consequence of a legal demand.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Surface the legal blockage to the user; do not retry.",commonCauses:["Court order","Government censorship","DMCA takedown"],relatedStatuses:[403]}},500:{code:500,phrase:"Internal Server Error",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.1"),description:"The server encountered an unexpected condition that prevented it from fulfilling the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry idempotent requests with backoff; report to the operator if persistent.",commonCauses:["Unhandled exception","Database failure","Misconfiguration"],relatedStatuses:[502,503]}},501:{code:501,phrase:"Not Implemented",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.2"),description:"The server does not support the functionality required to fulfill the request.",expectsEmptyBody:false,cacheability:"heuristic",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Use a different method or endpoint; this feature is not supported.",commonCauses:["Server lacks support for the requested method."],relatedStatuses:[405]}},502:{code:502,phrase:"Bad Gateway",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.3"),description:"The server, while acting as a gateway or proxy, received an invalid response from an inbound server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; the upstream is likely transiently unhealthy.",commonCauses:["Upstream returned malformed response","Origin briefly down"],relatedStatuses:[503,504]}},503:{code:503,phrase:"Service Unavailable",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.4"),description:"The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[{name:"Retry-After",required:false,purpose:"Indicates how long the service is expected to be unavailable."}],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"respect-retry-after",agentAction:"Respect Retry-After if present; otherwise back off exponentially.",commonCauses:["Overload","Scheduled maintenance","Circuit breaker open"],relatedStatuses:[429,502,504]}},504:{code:504,phrase:"Gateway Timeout",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.5"),description:"The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry with backoff; consider increasing the upstream timeout.",commonCauses:["Slow upstream","Network partition"],relatedStatuses:[408,502]}},505:{code:505,phrase:"HTTP Version Not Supported",category:"Server Error",source:"IANA",rfc:"RFC9110",specUrl:e("15.6.6"),description:"The server does not support, or refuses to support, the major version of HTTP that was used in the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Downgrade or upgrade to a supported HTTP version and retry.",commonCauses:["Client speaks HTTP version the server has disabled."],relatedStatuses:[426]}},506:{code:506,phrase:"Variant Also Negotiates",category:"Server Error",source:"IANA",rfc:"RFC2295",specUrl:"https://datatracker.ietf.org/doc/html/rfc2295#section-8.1",description:"Transparent content negotiation for the request results in a circular reference.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Server-side configuration bug; report to the operator.",commonCauses:["Misconfigured content negotiation chain."],relatedStatuses:[]}},507:{code:507,phrase:"Insufficient Storage",category:"Server Error",source:"IANA",rfc:"RFC4918",specUrl:"https://datatracker.ietf.org/doc/html/rfc4918#section-11.5",description:"WebDAV: the method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry later or reduce payload size; storage is full upstream.",commonCauses:["Disk full on server."],relatedStatuses:[413]}},508:{code:508,phrase:"Loop Detected",category:"Server Error",source:"IANA",rfc:"RFC5842",specUrl:"https://datatracker.ietf.org/doc/html/rfc5842#section-7.2",description:"WebDAV: the server terminated an operation because it encountered an infinite loop while processing a request with Depth: infinity.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Restructure the request to avoid the cycle.",commonCauses:["Cyclic WebDAV bindings."],relatedStatuses:[]}},510:{code:510,phrase:"Not Extended",category:"Server Error",source:"IANA",rfc:"RFC2774",specUrl:"https://datatracker.ietf.org/doc/html/rfc2774#section-7",description:"Further extensions to the request are required for the server to fulfill it.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Add the required HTTP extension declarations and retry.",commonCauses:["Server requires HTTP extension framework."],relatedStatuses:[]}},511:{code:511,phrase:"Network Authentication Required",category:"Server Error",source:"IANA",rfc:"RFC6585",specUrl:"https://datatracker.ietf.org/doc/html/rfc6585#section-6",description:"The client needs to authenticate to gain network access. Intended for captive portals.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Complete the captive portal flow, then retry.",commonCauses:["Public Wi-Fi captive portal."],relatedStatuses:[401]}}};var f={WEB_SERVER_RETURNED_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMED_OUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURRED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,ORIGIN_DNS_ERROR:530},r="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/5xx-errors/",s={520:{code:520,phrase:"Web Server Returned an Unknown Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-520-web-server-returns-an-unknown-error`,description:"The origin server returned an empty, unknown, or unexpected response to Cloudflare.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, the origin is misbehaving and needs operator attention.",commonCauses:["Origin crashed mid-response","Origin returned malformed HTTP"],relatedStatuses:[502]}},521:{code:521,phrase:"Web Server Is Down",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-521-web-server-is-down`,description:"The origin server refused the connection from Cloudflare. Cloudflare could not establish a TCP connection.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; verify origin is running and not blocking Cloudflare IPs.",commonCauses:["Origin down","Cloudflare IPs blocked at firewall"],relatedStatuses:[502,503]}},522:{code:522,phrase:"Connection Timed Out",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-522-connection-timed-out`,description:"Cloudflare could not negotiate a TCP handshake with the origin server before timing out.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; investigate origin network reachability.",commonCauses:["Origin overloaded","Network partition between CF and origin"],relatedStatuses:[504]}},523:{code:523,phrase:"Origin Is Unreachable",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-523-origin-is-unreachable`,description:"Cloudflare could not reach the origin server, commonly due to a routing/BGP issue or invalid DNS record.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; if persistent, check origin DNS and routing.",commonCauses:["DNS record points to wrong IP","BGP routing problem"],relatedStatuses:[530]}},524:{code:524,phrase:"A Timeout Occurred",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-524-a-timeout-occurred`,description:"Cloudflare successfully connected and sent data to the origin, but the origin took too long to respond with an HTTP response.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; for long-running requests, consider an async pattern (e.g., 202 + polling).",commonCauses:["Long-running origin request exceeded the 100-second CF limit."],relatedStatuses:[504,408]}},525:{code:525,phrase:"SSL Handshake Failed",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-525-ssl-handshake-failed`,description:"Cloudflare could not negotiate an SSL/TLS handshake with the origin server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: align cipher suites and TLS versions between CF and origin.",commonCauses:["No common cipher suite","TLS version mismatch"],relatedStatuses:[526]}},526:{code:526,phrase:"Invalid SSL Certificate",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-526-invalid-ssl-certificate`,description:"Cloudflare could not validate the SSL certificate on the origin web server when SSL Full (strict) mode is active.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Operator action: install a valid origin certificate or relax SSL mode.",commonCauses:["Expired or self-signed origin cert","Hostname mismatch"],relatedStatuses:[525]}},527:{code:527,phrase:"Railgun Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:`${r}#error-527-railgun-listener-to-origin`,description:"Indicates an error connecting between Cloudflare and the origin's Railgun (rwengine) server.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:true,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Retry; Railgun is largely deprecated in favor of Argo Smart Routing.",commonCauses:["Railgun listener unreachable."],relatedStatuses:[]}},530:{code:530,phrase:"Origin DNS Error",category:"Vendor Extension",source:"Cloudflare",rfc:null,specUrl:"https://developers.cloudflare.com/support/troubleshooting/cloudflare-errors/troubleshooting-cloudflare-1xxx-errors/",description:"A 530 response is typically returned alongside a Cloudflare 1xxx error displayed in the body, indicating an origin DNS or worker failure.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"exponential-backoff",agentAction:"Inspect the body for the embedded 1xxx code; resolve DNS or Worker error.",commonCauses:["Origin DNS resolution failure","Worker script error"],relatedStatuses:[523]}}};var g={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},o={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}};var n=Object.freeze({...a,...s,...o}),S=t=>n[t];var c=t=>t>=100&&t<200,C=t=>t>=200&&t<300,T=t=>t>=300&&t<400,v=t=>t>=400&&t<500,x=t=>t>=500&&t<600,q=t=>t>=400,l=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),I=t=>l.has(t),d=new Set([204,205,304,444,499]),N=t=>c(t)||d.has(t),i=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),U=t=>i.has(t)?"heuristic":"uncacheable",F=t=>i.has(t),u=new Set([401,407,496,511]),w=t=>u.has(t); | ||
| export{s as CloudflareRegistry,f as CloudflareStatus,n as CompleteRegistry,a as IanaRegistry,p as IanaStatus,o as NginxRegistry,g as NginxStatus,U as cacheability,S as getMetadata,N as hasEmptyBody,F as isCacheable,v as isClientError,q as isError,c as isInformational,T as isRedirection,I as isRetryable,x as isServerError,C as isSuccess,w as requiresAuth}; |
+2
-2
@@ -9,3 +9,3 @@ # @master4n/http-status | ||
| - [http-status-registry.json](https://unpkg.com/@master4n/http-status@2/http-status-registry.json): full, sorted, pretty-printed registry. Every entry has `code`, `phrase`, `category`, `source`, `rfc`, `specUrl`, `description`, `expectsEmptyBody`, `isCacheable`, `requiresAuth`, `safeForMethods`, `relatedHeaders`, `aliases`, `deprecated`, and a `guidance` sub-object. | ||
| - [http-status-registry.json](https://unpkg.com/@master4n/http-status@2/http-status-registry.json): full, sorted, pretty-printed registry. Every entry has `code`, `phrase`, `category`, `source`, `rfc`, `specUrl`, `description`, `expectsEmptyBody`, `cacheability` (`'heuristic'` | `'uncacheable'`; was `isCacheable` in ≤2.0.0), `requiresAuth`, `safeForMethods`, `relatedHeaders`, `aliases`, `deprecated`, and a `guidance` sub-object. | ||
| - [Mirror on jsDelivr](https://cdn.jsdelivr.net/npm/@master4n/http-status@2/http-status-registry.json): same content via a different CDN. | ||
@@ -27,3 +27,3 @@ | ||
| - Tree-shakable sub-paths: `@master4n/http-status/iana`, `/cloudflare`, `/nginx`, `/utils`. | ||
| - Predicates in `/utils` (`isRetryable`, `hasEmptyBody`, `isCacheable`, `requiresAuth`, plus the 1xx–5xx range checks) are pure functions over the status code — they do not load any registry data, so bundlers tree-shake them down to under 1 KB. For full per-code metadata (RFC, specUrl, guidance block, etc.) call `getMetadata(code)` from the package root (`@master4n/http-status`). | ||
| - Predicates in `/utils` (`isRetryable`, `hasEmptyBody`, `isCacheable` (boolean), `cacheability` (`'heuristic'`|`'uncacheable'`), `requiresAuth`, plus the 1xx–5xx range checks) are pure functions over the status code — they do not load any registry data, so bundlers tree-shake them down to under 1 KB. For full per-code metadata (RFC, specUrl, guidance block, etc.) call `getMetadata(code)` from the package root (`@master4n/http-status`). | ||
@@ -30,0 +30,0 @@ ## Source |
+1
-1
@@ -1,2 +0,2 @@ | ||
| 'use strict';var e={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},t={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}}; | ||
| 'use strict';var e={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},t={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}}; | ||
| exports.NginxRegistry=t;exports.NginxStatus=e; |
@@ -1,2 +0,2 @@ | ||
| import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.cjs'; | ||
| import { c as HttpStatusMetadata } from '../types-4vBUR0dr.cjs'; | ||
@@ -3,0 +3,0 @@ declare const NginxStatus: { |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import { c as HttpStatusMetadata } from '../types-D9bAZ7ge.js'; | ||
| import { c as HttpStatusMetadata } from '../types-4vBUR0dr.js'; | ||
@@ -3,0 +3,0 @@ declare const NginxStatus: { |
+1
-1
@@ -1,2 +0,2 @@ | ||
| var e={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},t={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,isCacheable:false,requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,isCacheable:false,requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}}; | ||
| var e={NO_RESPONSE:444,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,CLIENT_CLOSED_REQUEST:499},t={444:{code:444,phrase:"No Response",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",description:'Nginx-specific code instructing the server to close the connection without sending any response headers (used via "return 444;").',expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Treat as a deliberate drop; do not retry the same request.",commonCauses:["Anti-abuse rule","Malformed request blocked at the edge"],relatedStatuses:[]}},494:{code:494,phrase:"Request Header Too Large",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",description:"Nginx-specific code returned when the request headers exceed large_client_header_buffers.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Trim headers/cookies and retry.",commonCauses:["Oversized cookie jar","Long Authorization header"],relatedStatuses:[431]}},495:{code:495,phrase:"SSL Certificate Error",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when client certificate verification fails.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Provide a valid client certificate and retry.",commonCauses:["Expired or untrusted client certificate."],relatedStatuses:[496]}},496:{code:496,phrase:"SSL Certificate Required",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",description:"Nginx-specific code returned when a client certificate was required but not provided.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:true,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"Attach a client certificate to the TLS connection and retry.",commonCauses:["Mutual TLS endpoint reached without a client cert."],relatedStatuses:[495]}},497:{code:497,phrase:"HTTP Request Sent to HTTPS Port",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors",description:"Nginx-specific code returned when a plain HTTP request is sent to an HTTPS port.",expectsEmptyBody:false,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:true,retryStrategy:"immediate",agentAction:"Reissue the request over HTTPS.",commonCauses:["Client used http:// against an https-only port."],relatedStatuses:[426]}},499:{code:499,phrase:"Client Closed Request",category:"Vendor Extension",source:"Nginx",rfc:null,specUrl:"https://nginx.org/en/docs/http/ngx_http_core_module.html",description:"Nginx-specific code logged when the client closes the connection while the server is still processing the request.",expectsEmptyBody:true,cacheability:"uncacheable",requiresAuth:false,safeForMethods:"all",relatedHeaders:[],aliases:[],deprecated:false,guidance:{isRetryable:false,retryStrategy:"never",agentAction:"No action; this code is observed in access logs, not received by the client.",commonCauses:["Client aborted the request","Network drop"],relatedStatuses:[408]}}}; | ||
| export{t as NginxRegistry,e as NginxStatus}; |
+1
-1
| { | ||
| "name": "@master4n/http-status", | ||
| "version": "2.0.0", | ||
| "version": "2.0.1", | ||
| "description": "The machine-readable HTTP status registry, optimised for AI agents and RAG pipelines.", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+1
-1
@@ -119,3 +119,3 @@ # @master4n/http-status | ||
| expectsEmptyBody: boolean; // RFC 9110: body MUST be empty | ||
| isCacheable: boolean | 'heuristic'; // RFC 9111 §4.2.2 | ||
| cacheability: 'heuristic' | 'uncacheable'; // RFC 9111 §4.2.2 (was `isCacheable` in ≤2.0.0) | ||
| requiresAuth: boolean; | ||
@@ -122,0 +122,0 @@ safeForMethods: HttpMethod[] | 'all'; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| 'use strict';var n=e=>e>=100&&e<200,b=e=>e>=200&&e<300,a=e=>e>=300&&e<400,u=e=>e>=400&&e<500,i=e=>e>=500&&e<600,m=e=>e>=400,o=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),E=e=>o.has(e),r=new Set([204,205,304,444,499]),l=e=>n(e)||r.has(e),t=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),c=e=>t.has(e)?"heuristic":false,s=new Set([401,407,496,511]),p=e=>s.has(e);exports.hasEmptyBody=l;exports.isCacheable=c;exports.isClientError=u;exports.isError=m;exports.isInformational=n;exports.isRedirection=a;exports.isRetryable=E;exports.isServerError=i;exports.isSuccess=b;exports.requiresAuth=p; | ||
| 'use strict';var n=e=>e>=100&&e<200,b=e=>e>=200&&e<300,a=e=>e>=300&&e<400,i=e=>e>=400&&e<500,c=e=>e>=500&&e<600,m=e=>e>=400,r=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),u=e=>r.has(e),t=new Set([204,205,304,444,499]),l=e=>n(e)||t.has(e),o=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),p=e=>o.has(e)?"heuristic":"uncacheable",E=e=>o.has(e),s=new Set([401,407,496,511]),h=e=>s.has(e);exports.cacheability=p;exports.hasEmptyBody=l;exports.isCacheable=E;exports.isClientError=i;exports.isError=m;exports.isInformational=n;exports.isRedirection=a;exports.isRetryable=u;exports.isServerError=c;exports.isSuccess=b;exports.requiresAuth=h; |
+31
-5
@@ -0,1 +1,3 @@ | ||
| import { C as Cacheability } from '../types-4vBUR0dr.cjs'; | ||
| /** | ||
@@ -7,2 +9,9 @@ * Pure, data-free predicates. This module deliberately does NOT import any | ||
| * (or from `@master4n/http-status` / `/iana` / etc.). | ||
| * | ||
| * Input contract: every predicate expects a real HTTP status code — a finite | ||
| * integer, typically 100–599. They are intentionally branch-free and do **not** | ||
| * validate the domain, so out-of-range or non-integer inputs return a defined | ||
| * but meaningless result (e.g. `isError(999) === true`, `isError(NaN) === false`). | ||
| * Validate untrusted input before calling, or use `getMetadata(code)` (returns | ||
| * `undefined` for unknown codes) when you need to know a code is real. | ||
| */ | ||
@@ -26,9 +35,26 @@ declare const isInformational: (code: number) => boolean; | ||
| declare const hasEmptyBody: (code: number) => boolean; | ||
| /** | ||
| * Returns the cacheability classification per RFC 9111 §4.2.2. The codes | ||
| * enumerated there are "heuristically cacheable"; all other codes are not | ||
| * cacheable by default. | ||
| * Precise cacheability classification per RFC 9111 §4.2.2. Returns `'heuristic'` | ||
| * for the status codes that a cache MAY store without explicit freshness | ||
| * headers, and `'uncacheable'` for everything else. (No status code is | ||
| * unconditionally cacheable on its own — explicit `Cache-Control`/`Expires` | ||
| * headers always govern; this classifies what is cacheable by *status alone*.) | ||
| * | ||
| * @example | ||
| * cacheability(200); // 'heuristic' | ||
| * cacheability(500); // 'uncacheable' | ||
| */ | ||
| declare const isCacheable: (code: number) => boolean | "heuristic"; | ||
| declare const cacheability: (code: number) => Cacheability; | ||
| /** | ||
| * Boolean predicate: `true` when the status code is heuristically cacheable per | ||
| * RFC 9111 §4.2.2 (cacheable by status alone, without explicit freshness | ||
| * headers). For the precise classification, use {@link cacheability}. | ||
| * | ||
| * @remarks Changed in 2.0.1: previously returned `boolean | 'heuristic'` (the | ||
| * string `'heuristic'` or `false`). It now returns a plain `boolean`, consistent | ||
| * with the other `is*` predicates; use {@link cacheability} for the string form. | ||
| */ | ||
| declare const isCacheable: (code: number) => boolean; | ||
| /** | ||
| * Returns true when the status mandates an authentication challenge (401, | ||
@@ -39,2 +65,2 @@ * 407, Nginx 496, 511). | ||
| export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth }; | ||
| export { Cacheability, cacheability, hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth }; |
+31
-5
@@ -0,1 +1,3 @@ | ||
| import { C as Cacheability } from '../types-4vBUR0dr.js'; | ||
| /** | ||
@@ -7,2 +9,9 @@ * Pure, data-free predicates. This module deliberately does NOT import any | ||
| * (or from `@master4n/http-status` / `/iana` / etc.). | ||
| * | ||
| * Input contract: every predicate expects a real HTTP status code — a finite | ||
| * integer, typically 100–599. They are intentionally branch-free and do **not** | ||
| * validate the domain, so out-of-range or non-integer inputs return a defined | ||
| * but meaningless result (e.g. `isError(999) === true`, `isError(NaN) === false`). | ||
| * Validate untrusted input before calling, or use `getMetadata(code)` (returns | ||
| * `undefined` for unknown codes) when you need to know a code is real. | ||
| */ | ||
@@ -26,9 +35,26 @@ declare const isInformational: (code: number) => boolean; | ||
| declare const hasEmptyBody: (code: number) => boolean; | ||
| /** | ||
| * Returns the cacheability classification per RFC 9111 §4.2.2. The codes | ||
| * enumerated there are "heuristically cacheable"; all other codes are not | ||
| * cacheable by default. | ||
| * Precise cacheability classification per RFC 9111 §4.2.2. Returns `'heuristic'` | ||
| * for the status codes that a cache MAY store without explicit freshness | ||
| * headers, and `'uncacheable'` for everything else. (No status code is | ||
| * unconditionally cacheable on its own — explicit `Cache-Control`/`Expires` | ||
| * headers always govern; this classifies what is cacheable by *status alone*.) | ||
| * | ||
| * @example | ||
| * cacheability(200); // 'heuristic' | ||
| * cacheability(500); // 'uncacheable' | ||
| */ | ||
| declare const isCacheable: (code: number) => boolean | "heuristic"; | ||
| declare const cacheability: (code: number) => Cacheability; | ||
| /** | ||
| * Boolean predicate: `true` when the status code is heuristically cacheable per | ||
| * RFC 9111 §4.2.2 (cacheable by status alone, without explicit freshness | ||
| * headers). For the precise classification, use {@link cacheability}. | ||
| * | ||
| * @remarks Changed in 2.0.1: previously returned `boolean | 'heuristic'` (the | ||
| * string `'heuristic'` or `false`). It now returns a plain `boolean`, consistent | ||
| * with the other `is*` predicates; use {@link cacheability} for the string form. | ||
| */ | ||
| declare const isCacheable: (code: number) => boolean; | ||
| /** | ||
| * Returns true when the status mandates an authentication challenge (401, | ||
@@ -39,2 +65,2 @@ * 407, Nginx 496, 511). | ||
| export { hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth }; | ||
| export { Cacheability, cacheability, hasEmptyBody, isCacheable, isClientError, isError, isInformational, isRedirection, isRetryable, isServerError, isSuccess, requiresAuth }; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| var n=e=>e>=100&&e<200,b=e=>e>=200&&e<300,a=e=>e>=300&&e<400,u=e=>e>=400&&e<500,i=e=>e>=500&&e<600,m=e=>e>=400,o=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),E=e=>o.has(e),r=new Set([204,205,304,444,499]),l=e=>n(e)||r.has(e),t=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),c=e=>t.has(e)?"heuristic":false,s=new Set([401,407,496,511]),p=e=>s.has(e);export{l as hasEmptyBody,c as isCacheable,u as isClientError,m as isError,n as isInformational,a as isRedirection,E as isRetryable,i as isServerError,b as isSuccess,p as requiresAuth}; | ||
| var n=e=>e>=100&&e<200,b=e=>e>=200&&e<300,a=e=>e>=300&&e<400,i=e=>e>=400&&e<500,c=e=>e>=500&&e<600,m=e=>e>=400,r=new Set([408,421,425,426,429,500,502,503,504,507,511,520,521,522,523,524,527,530,497]),u=e=>r.has(e),t=new Set([204,205,304,444,499]),l=e=>n(e)||t.has(e),o=new Set([200,203,204,206,226,300,301,308,404,405,410,414,501]),p=e=>o.has(e)?"heuristic":"uncacheable",E=e=>o.has(e),s=new Set([401,407,496,511]),h=e=>s.has(e);export{p as cacheability,l as hasEmptyBody,E as isCacheable,i as isClientError,m as isError,n as isInformational,a as isRedirection,u as isRetryable,c as isServerError,b as isSuccess,h as requiresAuth}; |
| type HttpStatusCategory = 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension'; | ||
| type HttpStatusSource = 'IANA' | 'Cloudflare' | 'Nginx'; | ||
| type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'CONNECT' | 'TRACE'; | ||
| type RetryStrategy = 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after'; | ||
| interface RelatedHeader { | ||
| readonly name: string; | ||
| readonly required: boolean; | ||
| readonly purpose: string; | ||
| } | ||
| /** | ||
| * Authored guidance. NOT derived from the spec. Treat as recommendation, not normative fact. | ||
| */ | ||
| interface HttpStatusGuidance { | ||
| readonly isRetryable: boolean; | ||
| readonly retryStrategy: RetryStrategy; | ||
| readonly agentAction: string; | ||
| readonly commonCauses: readonly string[]; | ||
| readonly relatedStatuses: readonly number[]; | ||
| } | ||
| /** | ||
| * Spec-derivable metadata. Every field is backed by `specUrl`. | ||
| */ | ||
| interface HttpStatusMetadata { | ||
| readonly code: number; | ||
| readonly phrase: string; | ||
| readonly category: HttpStatusCategory; | ||
| readonly source: HttpStatusSource; | ||
| readonly rfc: string | null; | ||
| readonly specUrl: string; | ||
| readonly description: string; | ||
| readonly expectsEmptyBody: boolean; | ||
| readonly isCacheable: boolean | 'heuristic'; | ||
| readonly requiresAuth: boolean; | ||
| readonly safeForMethods: readonly HttpMethod[] | 'all'; | ||
| readonly relatedHeaders: readonly RelatedHeader[]; | ||
| readonly aliases: readonly string[]; | ||
| readonly deprecated: boolean; | ||
| readonly guidance: HttpStatusGuidance; | ||
| } | ||
| type HttpStatusRegistryMap = Readonly<Record<number, HttpStatusMetadata>>; | ||
| export type { HttpMethod as H, RelatedHeader as R, HttpStatusCategory as a, HttpStatusGuidance as b, HttpStatusMetadata as c, HttpStatusRegistryMap as d, HttpStatusSource as e, RetryStrategy as f }; |
| type HttpStatusCategory = 'Informational' | 'Success' | 'Redirection' | 'Client Error' | 'Server Error' | 'Vendor Extension'; | ||
| type HttpStatusSource = 'IANA' | 'Cloudflare' | 'Nginx'; | ||
| type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'CONNECT' | 'TRACE'; | ||
| type RetryStrategy = 'never' | 'immediate' | 'exponential-backoff' | 'respect-retry-after'; | ||
| interface RelatedHeader { | ||
| readonly name: string; | ||
| readonly required: boolean; | ||
| readonly purpose: string; | ||
| } | ||
| /** | ||
| * Authored guidance. NOT derived from the spec. Treat as recommendation, not normative fact. | ||
| */ | ||
| interface HttpStatusGuidance { | ||
| readonly isRetryable: boolean; | ||
| readonly retryStrategy: RetryStrategy; | ||
| readonly agentAction: string; | ||
| readonly commonCauses: readonly string[]; | ||
| readonly relatedStatuses: readonly number[]; | ||
| } | ||
| /** | ||
| * Spec-derivable metadata. Every field is backed by `specUrl`. | ||
| */ | ||
| interface HttpStatusMetadata { | ||
| readonly code: number; | ||
| readonly phrase: string; | ||
| readonly category: HttpStatusCategory; | ||
| readonly source: HttpStatusSource; | ||
| readonly rfc: string | null; | ||
| readonly specUrl: string; | ||
| readonly description: string; | ||
| readonly expectsEmptyBody: boolean; | ||
| readonly isCacheable: boolean | 'heuristic'; | ||
| readonly requiresAuth: boolean; | ||
| readonly safeForMethods: readonly HttpMethod[] | 'all'; | ||
| readonly relatedHeaders: readonly RelatedHeader[]; | ||
| readonly aliases: readonly string[]; | ||
| readonly deprecated: boolean; | ||
| readonly guidance: HttpStatusGuidance; | ||
| } | ||
| type HttpStatusRegistryMap = Readonly<Record<number, HttpStatusMetadata>>; | ||
| export type { HttpMethod as H, RelatedHeader as R, HttpStatusCategory as a, HttpStatusGuidance as b, HttpStatusMetadata as c, HttpStatusRegistryMap as d, HttpStatusSource as e, RetryStrategy as f }; |
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
322979
2.77%3351
1.42%0
-100%