Error Handling
HTTP Status Codes
Error Response Format
All errors return a consistent JSON structure:Error Codes
Retry Strategy
Exponential Backoff
For transient errors (5xx, timeouts), retry with increasing delays:When NOT to Retry
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.- Read the
Retry-Afterheader value. - Pause requests for that duration.
- Resume. If you hit the limit again, increase your backoff.
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.failedwebhook 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.
Timeout Handling
Sync Requests
If yourX-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
- Track error rates by endpoint and HTTP status code.
- Alert on 5xx spikes. Sustained 5xx errors may indicate a provider outage or Zenoo infrastructure issue.
- Monitor webhook delivery. Track delivery failures and retry rates.
- Log
request_idfor every API call. This is essential for debugging with Zenoo support. - Track response times. Latency increases may indicate provider degradation.
- Monitor rate limit proximity. Alert when you reach 80% of your limit to avoid hitting it during traffic spikes.
Next Steps
- Webhooks — Handle webhook delivery failures and retries
- Idempotency — Prevent duplicate verifications
- Result Delivery — Choose between push, pull, and ping+pull
- Testing & Sandbox — Test error scenarios in staging