Every error returns the same JSON envelope with a stable machine-readable code, a human message, and a request_id you can quote to support.

Status codes

Retrying safely

  • Retryable: 429 and 5xx. Use exponential backoff.
  • Not retryable without changes: 400, 401, 402, 403, 404, 422.
  • On billable create calls, send an Idempotency-Key so a retry never duplicates a diagram or double-charges.

Getting support

Include the request_id from the error envelope when you contact support. It lets us find the exact request.