Standard error shape
| Field | Type | Description |
|---|---|---|
type | string | Stable error type identifier. Use to branch logic on your side. |
status | number | HTTP code echoed in the body (RFC 7807 compatibility). |
title | string | Short error category (Validation Error, Not Found, Forbidden, Internal Server Error, etc.). |
detail | string | English message describing the problem. Don’t display directly to end users. |
traceId | string | Correlation id for debugging. Include in any support ticket. |
errors field may be populated with per-field errors in the format Dictionary<string, ProblemDetailsFieldError[]>.
Common HTTP codes
| Status | Title | What it means | What to do |
|---|---|---|---|
400 | Validation Error or Business Error | Body invalid in format (malformed JSON, wrong content-type) or business rule violated. | Fix the request before retrying. |
401 | — | Missing, invalid or expired token. | Renew/generate a new credential. Don’t retry without action. |
403 | Forbidden | Token is valid but lacks permission for the operation. | Check API Key or OAuth scope. |
404 | Not Found | Resource doesn’t exist. | Confirm id. |
422 | Unprocessable Entity | Body well-formed but entity invalid (domain rules). | Read detail and adjust. |
500 | Internal Server Error | Cativa-side error. | Retry with backoff. If it persists, open a ticket with the traceId. |
502/503/504 | — | Transient unavailability. | Retry with exponential backoff. |
Example 400 Validation Error
Anti-pattern: ignoring traceId in logs
How to report an error
When opening a ticket at dev@cativa.digital, always include:- The
traceIdreturned in the error response body. - The
typeand thestatusof the error. - A sample of the request (URL, method, relevant headers — don’t expose the full key).
- Approximate time (with timezone) when the error happened.
Next steps
Identity and Users
Where you’ll see
400 Validation Error (invalid field) most often.Webhooks
How
X-Cativa-Execution-Id helps you deduplicate redelivered webhooks.