---
title: missing_idempotency_key — Idempotency-Key header missing
description: "HTTP 422 missing_idempotency_key: Idempotency-Key header is required."
canonical_url: "https://cascades.crscreditapi.com/docs/api/errors/missing_idempotency_key"
doc_version: "1.0.0"
last_updated: "2026-10-09T18:04:24Z"
http_status: 422
source: config/api_error_codes.yml
---

# `missing_idempotency_key` — Idempotency-Key header missing

**HTTP 422 Unprocessable Content**

Message: "Idempotency-Key header is required."

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
- `POST /workflows/{id}/trigger`, `POST /workflows/{id}/batches`, or `POST /executions/{id}/re_evaluations` was sent without an `Idempotency-Key` header, or with an empty one.

## How to fix it
1. Send a unique string per logical request, up to 200 characters; a UUID v4 is the convention. Keep it stable across retries of the same request.

## Operations that return it
- [POST /workflows/{id}/trigger](/docs/api/workflows/trigger-workflow) — Trigger a workflow
- [POST /workflows/{id}/batches](/docs/api/batches/create-batch) — Create a batch from N rows
- [POST /executions/{id}/re_evaluations](/docs/api/executions/re-evaluate-execution) — Re-evaluate an execution

## Example response

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

```json
{
  "error": {
    "code": "missing_idempotency_key",
    "message": "Idempotency-Key header is required.",
    "details": [],
    "request_id": "6f1c2a3e-8d4b-4c5e-9f0a-1b2c3d4e5f60",
    "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/missing_idempotency_key"
  }
}
```

## Related
- [/docs/concepts/idempotency](/docs/concepts/idempotency)

[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.
