Getting Started
Error Handling
MUDBASE uses standard HTTP status codes and structured error objects for all error responses.
Error Response Format
jsonError Response
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after 30 seconds.",
"status": 429,
"requestId": "req_01JXXXXXXXXXXXXXXXX"
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after 30 seconds.",
"status": 429,
"requestId": "req_01JXXXXXXXXXXXXXXXX"
}
}SDK Error Handling
javascript
import { MudbaseError } from 'mudbase-sdk';
try {
const result = await mudbase.backups.create({ projectId: 'proj_abc' });
} catch (err) {
if (err instanceof MudbaseError) {
console.error(err.code); // 'rate_limited'
console.error(err.status); // 429
console.error(err.requestId); // 'req_01J...'
if (err.status === 429) {
await sleep(err.retryAfter * 1000);
}
}
}import { MudbaseError } from 'mudbase-sdk';
try {
const result = await mudbase.backups.create({ projectId: 'proj_abc' });
} catch (err) {
if (err instanceof MudbaseError) {
console.error(err.code); // 'rate_limited'
console.error(err.status); // 429
console.error(err.requestId); // 'req_01J...'
if (err.status === 429) {
await sleep(err.retryAfter * 1000);
}
}
}Error Codes Reference
| Code | HTTP | Description |
|---|---|---|
| unauthorized | 401 | API key missing, invalid, or expired. |
| forbidden | 403 | Authenticated but lacking required role/permission. |
| not_found | 404 | The requested resource does not exist. |
| validation_error | 422 | Request body failed schema validation. |
| rate_limited | 429 | Too many requests. Check Retry-After header. |
| internal_error | 500 | Unexpected server error. Contact support with requestId. |