HTTP status: 409 · Title: “Client request id conflict”Documentation Index
Fetch the complete documentation index at: https://docs.kash.bot/llms.txt
Use this file to discover all available pages before exploring further.
When it fires
The same(user_id, clientRequestId) body pair was used for an earlier trade with a different body. The trade row is unique on (user_id, clientRequestId) once you opt in.
Why it happens
- Power-user mistake:
clientRequestIdis a body field with stricter conflict semantics than the HTTPIdempotency-Keyheader. Most callers should use the header; opt intoclientRequestIdonly if you specifically want trade-row-scoped dedup. - A bug regenerated the body but kept the
clientRequestIdconstant.
How to fix
- For most use cases, drop
clientRequestIdand use onlyIdempotency-Key. Seeapps/public-api/README.md§ Idempotency. - If you need
clientRequestId’s row-scoped dedup, generate a fresh value per logical operation. - The conflicting trade row is referenced in the
detailfield — fetch it viaGET /v1/trades/:idto see what was previously submitted.
Related codes
IDEMPOTENCY_KEY_CONFLICT— same idea, header-level