InvergeDocs

Errors & status codes

The error envelope, status codes, and which failures are safe to retry.

Every error has the same shape:

{
  "error": {
    "code": "validation_failed",
    "message": "events must contain no more than 1000 elements",
    "details": { "…": "…" }
  }
}

Match on code, not on message.

StatuscodeRetry?
400bad_request / a specific codeNo — fix the request
401unauthorizedNo
402billing_suspendedNo — pay the outstanding invoice
403forbiddenNo
404not_foundNo
409conflictNo
422validation_failedNo
429rate_limitedYes, after Retry-After
5xxinternal_errorYes, with backoff — only for idempotent calls

What is safe to retry

Retry telemetry ingest, flag evaluation, Remote Config fetches and reads. Don't blindly retry a push send, a realtime emit, a voice action or a survey response after a timeout — it may have succeeded, and a duplicate is visible to people. The SDKs follow exactly this policy.

Successful responses that still need checking

  • Voice — adding a leg returns 200 with an error field for expected failures (call_blocked, no_outbound_trunk, media_unavailable).
  • Realtime emit succeeds with recipients: 0 when nobody in the room's environment is listening.
  • Usage limits — over a monthly cap, ingest endpoints answer successfully with nothing written (written: 0).

On this page