Reference

validation_error

The payload was well-formed JSON but failed schema validation.

422HTTP 422 · Validation Error

What it means

The payload was well-formed JSON but failed schema validation.

Do not retry

The identical request will fail the same way every time. Change it first.

What causes it

  • A required field was absent.
  • A field carried the wrong type — a string where a number was expected, or null on a non-nullable field.
  • A string ran past its maximum length, or an enum value is not one of the accepted set.

How to fix it

  • Read `details.errors` — it is the full per-field validation report, with the JSON path to each failure.
  • Validate against the OpenAPI schema before sending. The generated SDKs do this for you.

The details object

This code carries a details object with more than the message can say:

`{ errors: [...] }` — one entry per failed field, each with its location, message and type.

What the response looks like

422 application/problem+json
{
  "error": {
    "code": "validation_error",
    "message": "The payload was well-formed JSON but failed schema validation",
    "details": { ... },
    "request_id": "7cb7f7862a82425d8e4c3fb8a497dfe6"
  },
  "type": "https://integrable.cloud/docs/errors/validation_error",
  "title": "Validation Error",
  "status": 422,
  "detail": "The payload was well-formed JSON but failed schema validation",
  "instance": "/api/bots/01a0652b-3713-7ea1-a6c9-2e895389ec34"
}

Branch on error.code, not on the message — the code is stable, the sentence is not. Log request_id either way.

Still stuck

Quote the request_id from the response — hello@integrable.cloud. It is what lets us find the exact request. The full list of codes is at Error codes, and the conventions every endpoint shares are in Retries, versioning and limits.

Something here wrong or missing? Tell us — the documentation and the API are maintained by the same person, so a correction is a fix rather than a ticket.

Building on it? Start on the free plan — no card — and call the same API the dashboard uses.

Start free