Errors and retry behavior
Non-success responses use this envelope:Retry guidance
- Retry transport failures.
- Retry idempotent writes with the same
Idempotency-Key. - Re-read durable state after async work instead of assuming the first response is complete.
Practical rules
- Treat server-side failures as retry candidates only when the original write used a stable idempotency key.
- Treat fresh export download URLs as temporary and re-read them from
GET /exports/{exportId}when needed. - If a mutation is already in progress or conflicts with current state, inspect the returned
codeand retry only when the operation is still logically safe.
Machine-readable clients
The shipped Node.js SDK and CLI normalize errors into structured objects with:codemessagestatusretryable
