Skip to main content
The Praxa API returns errors in RFC 9457 application/problem+json format, providing structured machine-readable details alongside the HTTP status code. Every error response carries a stable type URI you can use to distinguish error kinds programmatically, a human-readable detail field for logging, and a requestId UUID you can share with support to trace exactly what happened on the server.

Error Response Format

Every non-successful response has a Content-Type: application/problem+json header and a body that follows this structure:
Sensitive fields such as credentials and internal stack traces are always redacted from problem responses before they reach you.

HTTP Status Codes

The table below covers every HTTP status code the Integration Gateway can return, what causes it, and what you should do.

Idempotency Conflicts (409)

A 409 Conflict on a mutating endpoint means you sent the same Idempotency-Key header value with a different request body than the one originally associated with that key. This is always a client error. You have two options to resolve it:
1

Reuse the original payload

If you intended to replay the original operation (for example, after a network timeout), re-send the request with the exact same body you used the first time. The gateway will return the original response without re-executing the operation.
2

Generate a new idempotency key

If you intend to submit a genuinely different operation, generate a fresh Idempotency-Key value (for example, a new UUID v4) and send the new payload with that key.
Do not silently swallow 409 responses or retry them without making one of the two changes above. Retrying with the same key and a different body will always return 409.

Retry-After Header

When you receive a 429 Too Many Requests response, the gateway includes a Retry-After header that tells you how many seconds to wait before retrying:
Wait at least this many seconds before re-sending the request. If you receive consecutive 429 responses, apply additional exponential backoff on top of the Retry-After value to avoid amplifying load on the gateway.
If you use the Praxa SDK, it automatically retries 408, 425, 429, and 5xx responses using the Retry-After header where present. You only need to handle non-retryable errors such as 400, 401, 403, 404, 409, and 422 in your own code.