type URI on every validation_error problem body: https://docs.get-exo.com/errors/validation_error.
HTTP status: 422 Unprocessable Content.
Why it happens
This is the only code that always carries anerrors[] array, and the array is the useful part. Each entry names one violation with a JSON pointer, the field, a machine code and a human message.
Field-level codes come from two places. Pydantic supplies the shapes of a malformed body: missing, json_invalid, string_too_short and their siblings. Exo supplies domain-specific ones such as invalid_format on a malformed subject id, unsupported_provider on a connector selector, and the webhook URL family described below.
How to fix it
- Read
errors[]rather thandetail. The pointer tells you exactly which field to correct. - Retry with a corrected body. If the original request carried an
Idempotency-Key, the key was released rather than persisted, so you can reuse it.
Field-level codes
These appear aserrors[].code, never as the top-level code. The top-level code stays validation_error.
Related
invalid_expandconfirm_token_invalididempotency_key_reuse- Errors for the envelope and the full catalogue