Skip to main content

Error Handling

HTTP Status Codes

Error Response Format

All errors return a consistent JSON structure:
Always log request_id. It allows Zenoo support to trace the exact request through internal systems.

Error Codes

Retry Strategy

Exponential Backoff

For transient errors (5xx, timeouts), retry with increasing delays:

When NOT to Retry

Never retry 4xx errors automatically. They indicate a problem with your request, not a transient server issue.

Rate Limiting

When you exceed your project’s rate limit, you receive a 429 response. The Retry-After header tells you how many seconds to wait. Always use this value instead of guessing.
Handling rate limits:
  1. Read the Retry-After header value.
  2. Pause requests for that duration.
  3. Resume. If you hit the limit again, increase your backoff.
For high-volume integrations, implement a request queue. Smooth out bursts rather than sending requests as fast as possible. Monitor your request rate and contact Zenoo if you need higher limits.

Zenoo Internal Error Classification

Zenoo classifies errors from upstream providers into three categories. This determines automatic retry behavior on the server side.

Automatic Retry Schedule

For async flows, Zenoo automatically retries transient provider failures on your behalf: Maximum delay is capped at 240 minutes (4 hours). Rate-limited errors use a 2x multiplier on these delays. After all retries are exhausted:
  • The check is marked as Failed.
  • A check.failed webhook is sent to your endpoint.
  • An API Failure alert is created in the case management system.
You do not need to implement retry logic for provider failures. Zenoo handles it automatically.

Circuit Breaker

Zenoo protects upstream providers with a circuit breaker pattern: This is transparent to your integration. You do not need to implement any special handling. When a provider’s circuit breaker opens:
  • Checks for that provider are queued automatically.
  • Other providers continue operating normally.
  • You receive results via webhook once the provider recovers.
From your perspective, the verification simply takes longer to complete.

Timeout Handling

Sync Requests

If your X-SYNC-TIMEOUT is reached before all checks complete:
  • The response may contain partial results.
  • A pull token is included in the response headers for retrieving full results later.
  • Consider increasing the timeout or switching to async mode.

Async Requests

The /init endpoint responds immediately with tokens, so connection timeouts are rare. If you experience them:
  • Check your network connectivity.
  • Verify the base URL and project hash.
  • Contact Zenoo support if the issue persists.

Monitoring Recommendations

  1. Track error rates by endpoint and HTTP status code.
  2. Alert on 5xx spikes. Sustained 5xx errors may indicate a provider outage or Zenoo infrastructure issue.
  3. Monitor webhook delivery. Track delivery failures and retry rates.
  4. Log request_id for every API call. This is essential for debugging with Zenoo support.
  5. Track response times. Latency increases may indicate provider degradation.
  6. Monitor rate limit proximity. Alert when you reach 80% of your limit to avoid hitting it during traffic spikes.

Next Steps