ProblemDetails
A URI reference that identifies the problem type. When dereferenced, it provides human-readable documentation for the problem.Example:
https://tools.ietf.org/html/rfc7231#section-6.5.1A short, human-readable summary of the problem type. Does not change between occurrences of the same problem.Example:
"One or more validation errors occurred."The HTTP status code for this occurrence.Example:
400A human-readable explanation specific to this occurrence of the problem.Example:
"See the errors field for details."A URI reference that identifies the specific occurrence. May or may not yield more information when dereferenced.
An array of error objects describing individual validation or field-level errors. See the errors field below.
Example Response
Extensions
errors
Theerrors field is a Smokeball extension to the ProblemDetails standard.
The ProblemDetails standard leaves the shape of errors loosely defined. Smokeball returns errors as an array of objects instead. There are two reasons for this:
- Multiple errors per field: a dictionary approach typically collapses all messages for a field into a string array, losing any structured metadata (such as error codes) attached to each individual error.
- Preserved ordering: an array guarantees that errors are returned in a stable, meaningful order (e.g. the order fields appear in the request body), whereas dictionary key ordering is not guaranteed across all languages and runtimes.