Problem
Response and request schema
Schema
object
RFC 9457 problem document used by every managed error response
under /v1, regardless of which layer produced it. Content type is
always application/problem+json. Clients branch on code, retain
an unknown-code fallback, use status only for broad handling and
must ignore unknown top-level fields. title and detail are
human-readable English, may be clarified without versioning and are
never parsed.
| Field | Type | Description |
|---|---|---|
charged | boolean · required | Whether credits were charged for this request. Always |
code | string · required | Stable machine code from the registered matrix. Codes are only added, never changed, within v1; clients retain an unknown-code fallback. Pattern: |
detail | string · required | Safe occurrence-level explanation. Non-normative and never parsed by clients. |
errors | array of ValidationError | Present only for field-level validation failures. Items use request-field order and contain at most 20 entries. Maximum items: |
errors_truncated | boolean | May be |
instance | string (uri) · required |
|
request_id | string · required | Server-generated request identifier, equal to the |
retryable | boolean · required | Whether retrying this occurrence without changing the business request may succeed. An occurrence-level recommendation, not permission for an unbounded loop; honor |
status | integer · required | The HTTP status code repeated as an integer. Minimum: |
title | string · required | Short stable English summary. Clients do not branch on it. |
type | string (uri) · required | Stable HTTPS documentation URI derived from |
Related schemas: ValidationError
Complete OpenAPI definition
{
"description": "RFC 9457 problem document used by every managed error response\nunder `/v1`, regardless of which layer produced it. Content type is\nalways `application/problem+json`. Clients branch on `code`, retain\nan unknown-code fallback, use `status` only for broad handling and\nmust ignore unknown top-level fields. `title` and `detail` are\nhuman-readable English, may be clarified without versioning and are\nnever parsed.\n",
"properties": {
"charged": {
"description": "Whether credits were charged for this request. Always `false` on an error response in v1; no error creates a debit or hold.",
"type": "boolean"
},
"code": {
"description": "Stable machine code from the registered matrix. Codes are only added, never changed, within v1; clients retain an unknown-code fallback.",
"pattern": "^[a-z][a-z0-9_]*$",
"type": "string"
},
"detail": {
"description": "Safe occurrence-level explanation. Non-normative and never parsed by clients.",
"type": "string"
},
"errors": {
"description": "Present only for field-level validation failures. Items use request-field order and contain at most 20 entries.",
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"maxItems": 20,
"type": "array"
},
"errors_truncated": {
"description": "May be `true` when more validation failures exist than the 20-item bound allows.",
"type": "boolean"
},
"instance": {
"description": "`urn:hippomundo:request:{request_id}`. Never the request URL or query string.",
"format": "uri",
"type": "string"
},
"request_id": {
"description": "Server-generated request identifier, equal to the `Hippomundo-Request-ID` response header.",
"type": "string"
},
"retryable": {
"description": "Whether retrying this occurrence without changing the business request may succeed. An occurrence-level recommendation, not permission for an unbounded loop; honor `Retry-After` and use exponential backoff with jitter on retryable server errors.",
"type": "boolean"
},
"status": {
"description": "The HTTP status code repeated as an integer.",
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"title": {
"description": "Short stable English summary. Clients do not branch on it.",
"type": "string"
},
"type": {
"description": "Stable HTTPS documentation URI derived from `code` (`https://enterprise.hippomundo.com/docs/errors/{code}`). Never contains request data.",
"format": "uri",
"type": "string"
}
},
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"request_id",
"charged",
"retryable"
],
"type": "object"
}