Skip to main content
API errors are JSON data. Use the HTTP status and stable code to select a recovery path, then validate any data against that operation’s generated error schema. Procedure errors can also include status, defined, and inferable. Do not depend on a JavaScript exception class, object identity or the wording of message. A client in Python, Go or another language uses the same documented fields. The generated API reference is authoritative for the deployed response shapes; an internal SDK or service refactor does not create a second public error envelope. This validation example illustrates one documented response. Read the operation schema for the available issue fields and limits:

Common status codes

Request references

Responses produced by the API include X-Request-Id. Save that value with the operation ID, HTTP status and approximate UTC time when investigating a failure. An upstream gateway or network interruption may return a response without the API’s error body or request reference; do not assume that an arbitrary HTML or empty response matches the schema. Request references help correlate an operation across service reports. They are not credentials, and they do not guarantee that every internal hop has a recorded distributed trace. When contacting support, share the reference and a description of the operation; omit access tokens, client secrets, patient data, signed URLs and raw provider responses.

Unknown and transient failures

Treat a malformed error body or an unrecognized code as an unknown failure. Preserve the reference and fall back to a safe user message; do not interpret exception text or allow an unknown error to imply success. A temporary failure does not prove that a mutation had no effect. Follow retries and idempotency before trying again. Reuse an operation’s documented idempotency key with the same semantic input, or read current state when the operation has no replay guarantee.