Skip to main content
All errors share a standard envelope:
  • error.code — stable, machine-readable identifier. Branch on this.
  • error.message — human-readable summary. Suitable for logs; safe to surface to your end users.
  • error.details — optional, code-specific extra fields.

Codes

not_found and cross-tenant isolation

A 404 not_found is returned both when the record genuinely doesn’t exist and when it belongs to a different organisation. This is deliberate — we never reveal whether an id belongs to another tenant. A guessed UUID from another org always returns 404, never data.

Validation errors

422 validation_failed includes per-field detail:
Surface these directly to the user who triggered the call.

When to retry