---
title: validation_failed — Validation failed
description: "HTTP 422 validation_failed: The request could not be processed."
canonical_url: "https://cascades.crscreditapi.com/docs/api/errors/validation_failed"
doc_version: "1.0.0"
last_updated: "2026-10-09T18:04:24Z"
http_status: 422
source: config/api_error_codes.yml
---

# `validation_failed` — Validation failed

**HTTP 422 Unprocessable Content**

Message: "The request could not be processed."

Envelope schema: `ErrorEnvelope` in [openapi.json](https://cascades.crscreditapi.com/openapi.json#/components/schemas/ErrorEnvelope) ([YAML](https://cascades.crscreditapi.com/openapi.yaml)).

## What causes it
- A field has a value outside its allowed set — `execution_mode` must be `test` or `live`; `decision` must be `approved` or `denied`; `bulk_action` must be `approve`, `deny`, or `assign_to_me`; `assignee` must be `"me"` or `null`.
- A CSV filter contains an unknown value (`filter[status]`, `filter[review_status]`, `filter[event_type]`); the detail message lists the accepted values.
- Batch `rows` is missing, empty, not an array of objects, or longer than 500; `execution_ids` is empty or longer than 25.
- A record failed model validation on save — a cascade with no `name` or an unparseable `definition`, a webhook subscription with a blank, non-HTTPS, or private-network `url`, an unknown event in `event_filter`, a blank review `note`, or a blank / over-length `prompt` for generation.

## How to fix it
1. Read `details[]` — each entry names the `field` and the rule it broke. Fix every entry; the API reports all of them at once.
2. For filters, copy the allowed values from the detail message rather than guessing.
3. Split batches above 500 rows into several requests, each with its own `Idempotency-Key`.

## Operations that return it
- [POST /workflows](/docs/api/workflows/create-workflow) — Create a workflow
- [PATCH /workflows/{id}](/docs/api/workflows/update-workflow) — Update a workflow
- [POST /workflows/generate](/docs/api/workflows/generate-workflow) — Generate a workflow from a prompt
- [POST /workflows/{id}/trigger](/docs/api/workflows/trigger-workflow) — Trigger a workflow
- [GET /batches](/docs/api/batches/list-batches) — List batches
- [POST /workflows/{id}/batches](/docs/api/batches/create-batch) — Create a batch from N rows
- [GET /batches/{id}/executions](/docs/api/batches/list-batch-executions) — List child executions of a batch
- [GET /executions](/docs/api/executions/list-executions) — List executions
- [POST /executions/{id}/review_decisions](/docs/api/executions/submit-review-decision) — Approve or deny a paused review
- [POST /executions/{id}/review_assignment](/docs/api/executions/assign-review) — Claim or unassign a review
- [POST /executions/{id}/review_notes](/docs/api/executions/add-review-note) — Append a review note
- [POST /executions/review_bulk_actions](/docs/api/executions/bulk-review-actions) — Bulk approve / deny / assign_to_me
- [POST /webhook_subscriptions](/docs/api/webhooks/create-webhook-subscription) — Create a webhook subscription
- [PATCH /webhook_subscriptions/{id}](/docs/api/webhooks/update-webhook-subscription) — Update a webhook subscription
- [GET /webhook_deliveries](/docs/api/webhooks/list-webhook-deliveries) — List webhook deliveries

## Example response

```http
HTTP/1.1 422 Unprocessable Content
Content-Type: application/json
```

```json
{
  "error": {
    "code": "validation_failed",
    "message": "The request could not be processed.",
    "details": [
      {
        "field": "execution_mode",
        "message": "must be test or live"
      }
    ],
    "request_id": "6f1c2a3e-8d4b-4c5e-9f0a-1b2c3d4e5f60",
    "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/validation_failed"
  }
}
```

## Related
- [/docs/concepts/pagination-and-filtering](/docs/concepts/pagination-and-filtering)

[All error codes](https://cascades.crscreditapi.com/docs/api/errors.md)

## Sitemap

See the full [sitemap](https://cascades.crscreditapi.com/sitemap.md) for all pages.
