{"count":3,"entries":[{"category":"auth","error_code":"unauthorized","example_request":{"method":"GET","path":"/api/partner/status"},"example_response":{"error":"unauthorized","error_code":"unauthorized","success":false},"http_status":401,"remediation":["Check signing key id, signature, and timestamp skew.","Verify nonce uniqueness to avoid replay rejections.","Confirm requested endpoint scope matches key permissions."],"retry_after_seconds":0,"retry_behavior":"Do not blindly retry. Fix credentials/signature first.","title":"Authentication Failed"},{"category":"throttling","error_code":"rate_limited","example_request":{"headers":{"X-Idempotency-Key":"sample-key-123"},"method":"POST","path":"/api/partner/donation-claim"},"example_response":{"error":"rate_limited","error_code":"rate_limited","success":false},"http_status":429,"remediation":["Respect Retry-After and exponential backoff.","Reduce burst concurrency and reuse idempotency keys for retries.","Request higher quota only after proving sustained usage patterns."],"retry_after_seconds":60,"retry_behavior":"Retry with exponential backoff (1s, 2s, 4s...) and jitter.","title":"Rate Limit Reached"},{"category":"upstream","error_code":"rpc_unavailable","example_request":{"method":"GET","path":"/api/public-stats"},"example_response":{"error":"rpc_unavailable","error_code":"rpc_unavailable","success":false},"http_status":503,"remediation":["Retry after cooldown window.","Inspect /api/public/rpc-circuit-breaker for open/closed state.","Validate upstream provider health before raising incident severity."],"retry_after_seconds":120,"retry_behavior":"Retry after cooldown using capped exponential backoff.","title":"RPC Provider Unavailable"}],"generated_at_utc":"2026-04-13T14:33:00Z","source_file":"/home/vets-coin/flask_api/config/api_error_catalog.json","success":true,"updated_at_utc":"2026-03-10T22:15:00Z"}
