FurniOpsDocs
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}/acceptances
  • POST /v1/assistant/memories
  • POST /v1/billing/card
  • POST /v1/billing/credits/purchases
  • POST /v1/billing/credits/purchases/preview
  • POST /v1/billing/preview
  • POST /v1/billing/subscription
  • POST /v1/billing/subscription/cancel
  • POST /v1/billing/subscription/resume
  • POST /v1/billing/subscription/scheduled-change/cancel
  • POST /v1/brand/claims
  • POST /v1/brand/claims/{id}/withdraw
  • POST /v1/catalogue/publish
  • POST /v1/catalogue/visibility
  • POST /v1/catalogue/withdraw
  • POST /v1/demand
  • POST /v1/exports
  • POST /v1/mappings/{id}/confirm
  • POST /v1/match-pairs/{id}/dismiss
  • POST /v1/match-pairs/{id}/merge
  • POST /v1/match-pairs/{id}/reopen
  • POST /v1/merges/{id}/undo
  • POST /v1/proposals/{id}/accept
  • POST /v1/proposals/{id}/reject
  • POST /v1/source-probes
  • POST /v1/sources
  • POST /v1/sources/{id}/categories
  • POST /v1/sources/{id}/inbound-address/rotate
  • POST /v1/sources/{id}/records
  • POST /v1/sources/{id}/replay
  • POST /v1/sources/{id}/runs
  • POST /v1/sources/{id}/uploads
  • POST /v1/test/events
  • POST /v1/uploads/{id}/complete
  • POST /v1/variants/{id}/checks
  • POST /v1/webhook-endpoints
  • POST /v1/webhook-endpoints/{id}/deliveries/{delivery}/resend
  • POST /v1/webhook-endpoints/{id}/recover
  • POST /v1/webhook-endpoints/{id}/rotate-secret
  • POST /v1/webhook-endpoints/{id}/test