Skip to main content
The Omni API returns standard HTTP status codes. Error responses have a JSON body with a message field that describes the problem.

Status codes

Scheduled maintenance

During scheduled maintenance, every machine-called endpoint returns 503 Service Unavailable with a Retry-After header. The header value is the number of seconds to wait before you retry. The body matches what the endpoint’s clients already parse.
REST APIs - including /api/..., embed SSO URL generation, git webhooks return:
Paths are matched without regard to case. Browser pages, including the OAuth consent screens, show a maintenance page with a 200 instead. Maintenance windows are short. A client that waits for the Retry-After interval and retries resumes on its own with no other change.
Requests that a maintenance 503 rejects were not processed. It is safe to send them again.

Retry guidance

  • Retry 429 and 503 responses. Do not retry other 4xx responses.
  • When a response includes Retry-After, wait at least that many seconds. Otherwise, use exponential backoff with jitter, for example 1, 2, 4, and 8 seconds.
  • Cap the number of attempts. A 500 that repeats is a problem to report, not one to retry through.
  • Do not retry in a tight loop. Rapid retries during an incident make recovery slower.

Next steps