Error codes
idempotency_key_invalid
400 Idempotency-Key header missing or malformed
- HTTP status
- 400
- Title
- Idempotency-Key header missing or malformed
- Code
- idempotency_key_invalid
What it means
A POST that requires an Idempotency-Key header arrived without one, or with a value that is not 1 to 255 visible ASCII characters (a plain token or a quoted structured-field string).
What to do
Send a fresh unique key (a UUID is ideal) on every new POST, and the same key again when you retry it. The SDK does this for you.
Example
Errors are RFC 9457 problem details, sent as application/problem+json. See Errors for every field.
{
"type": "https://docs.furniops.com/errors/idempotency_key_invalid",
"title": "Idempotency-Key header missing or malformed",
"status": 400,
"code": "idempotency_key_invalid",
"detail": "An explanation of this occurrence.",
"request_id": "req_…",
"doc_url": "https://docs.furniops.com/errors/idempotency_key_invalid"
}Operations that answer it
POST /v1/agreements/{kind}/acceptancesPOST /v1/assistant/memoriesPOST /v1/billing/cardPOST /v1/billing/credits/purchasesPOST /v1/billing/credits/purchases/previewPOST /v1/billing/previewPOST /v1/billing/subscriptionPOST /v1/billing/subscription/cancelPOST /v1/billing/subscription/resumePOST /v1/billing/subscription/scheduled-change/cancelPOST /v1/brand/claimsPOST /v1/brand/claims/{id}/withdrawPOST /v1/catalogue/publishPOST /v1/catalogue/visibilityPOST /v1/catalogue/withdrawPOST /v1/demandPOST /v1/exportsPOST /v1/mappings/{id}/confirmPOST /v1/match-pairs/{id}/dismissPOST /v1/match-pairs/{id}/mergePOST /v1/match-pairs/{id}/reopenPOST /v1/merges/{id}/undoPOST /v1/proposals/{id}/acceptPOST /v1/proposals/{id}/rejectPOST /v1/source-probesPOST /v1/sourcesPOST /v1/sources/{id}/categoriesPOST /v1/sources/{id}/inbound-address/rotatePOST /v1/sources/{id}/recordsPOST /v1/sources/{id}/replayPOST /v1/sources/{id}/runsPOST /v1/sources/{id}/uploadsPOST /v1/test/eventsPOST /v1/uploads/{id}/completePOST /v1/variants/{id}/checksPOST /v1/webhook-endpointsPOST /v1/webhook-endpoints/{id}/deliveries/{delivery}/resendPOST /v1/webhook-endpoints/{id}/recoverPOST /v1/webhook-endpoints/{id}/rotate-secretPOST /v1/webhook-endpoints/{id}/test