Skip to main content
This page is the resolution target of the RFC 9457 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 an errors[] 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 than detail. 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 as errors[].code, never as the top-level code. The top-level code stays validation_error.