Skip to content

Errors

Expected failures share one shape:

json
{
  "error": "Record not found",
  "code": "RECORD_NOT_FOUND"
}
StatusCodeMeaning
400VALIDATION_ERRORBad query, body, ids, or write keys
401AUTHENTICATION_REQUIREDAdapter returned null or a malformed user
403PERMISSION_DENIEDRole not on the allowlist
404MODEL_NOT_FOUNDPlural name is not registered
404RECORD_NOT_FOUNDMissing, or outside scope (same code on purpose)
500INTERNAL_ERRORUnexpected. Message is generic

Out-of-scope reads look like missing rows. That is intentional — the API does not confirm that another tenant’s id exists.

Adapter exceptions are converted to 401. Hook exceptions that are not AdminApiError become 500 without the internal message.

Released under the MIT License.