Problem Details

Wispist API errors use RFC 9457 Problem Details and application/problem+json:

{
  "type": "https://learn.peios.org/wispist/problems/revision-conflict/",
  "title": "Revision conflict",
  "status": 412,
  "detail": "The document changed after it was read.",
  "instance": "urn:uuid:019c0000-0000-7000-8000-000000000000"
}

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:

HTTPTypeBrowser code
400Invalid requestinvalid_request
400Invalid JSONinvalid_json
401Authentication requiredauthentication_required
403Forbiddenforbidden
404Not foundnot_found
405Method not allowedmethod_not_allowed
409Idempotency conflictidempotency_conflict
409Quota exceededquota_exceeded
412Revision conflictrevision_conflict
413Request too largerequest_too_large
415Unsupported media typeunsupported_media_type
428Precondition requiredprecondition_required
429Rate limitedrate_limited
503Temporarily unavailabletemporarily_unavailable

HTTP headers retain their normal authority. Retry-After, ETag, Allow, and WWW-Authenticate are not replaced by Problem Details members.

Edit this page