Skip to Content

Errors

Error Response Format

All error responses follow a consistent format:

{ "error": { "message": "Human-readable error message", "code": "ERROR_CODE", "details": {} } }

HTTP Status Codes

CodeDescription
400Bad Request — Invalid parameters or request body
401Unauthorized — Missing or invalid authentication
403Forbidden — Insufficient permissions or scope
404Not Found — Resource doesn’t exist or isn’t accessible
409Conflict — Resource already exists or state conflict
422Unprocessable Entity — Validation failed
429Too Many Requests — Rate limit exceeded
500Internal Server Error — Something went wrong on our end

Common Error Codes

CodeDescription
VALIDATION_ERRORRequest body failed Zod validation
NOT_FOUNDThe requested resource was not found
UNAUTHORIZEDAuthentication required
FORBIDDENInsufficient permissions
CONFLICTResource already exists
RATE_LIMITEDToo many requests

Validation Errors

When validation fails (422), the details field contains specific field errors:

{ "error": { "message": "Validation failed", "code": "VALIDATION_ERROR", "details": { "issues": [ { "path": ["name"], "message": "Required" }, { "path": ["email"], "message": "Invalid email" } ] } } }