Problem Details
Wispist API errors use RFC 9457 Problem Details and application/problem+json:
The type URI is the primary machine identifier. It is permanent even if the implementation or documentation later moves. title is stable for that type; detail describes this occurrence. status matches the HTTP status.
instance is a urn:uuid: URI built from the same UUID returned in X-Request-ID. Give that request ID to an operator when investigating a server-side failure.
Validation problems may add an errors array of JSON Pointer and detail objects. Internal SQL, paths, stack traces, document bodies, tokens, and policy predicates are never returned.
The browser client maps known type URIs to convenient error.code values:
| HTTP | Type | Browser code |
|---|---|---|
| 400 | Invalid request | invalid_request |
| 400 | Invalid JSON | invalid_json |
| 401 | Authentication required | authentication_required |
| 403 | Forbidden | forbidden |
| 404 | Not found | not_found |
| 405 | Method not allowed | method_not_allowed |
| 409 | Idempotency conflict | idempotency_conflict |
| 409 | Quota exceeded | quota_exceeded |
| 412 | Revision conflict | revision_conflict |
| 413 | Request too large | request_too_large |
| 415 | Unsupported media type | unsupported_media_type |
| 428 | Precondition required | precondition_required |
| 429 | Rate limited | rate_limited |
| 503 | Temporarily unavailable | temporarily_unavailable |
HTTP headers retain their normal authority. Retry-After, ETag, Allow, and WWW-Authenticate are not replaced by Problem Details members.