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

CodeHTTPDescription
unauthorized401API key missing, invalid, or expired.
forbidden403Authenticated but lacking required role/permission.
not_found404The requested resource does not exist.
validation_error422Request body failed schema validation.
rate_limited429Too many requests. Check Retry-After header.
internal_error500Unexpected server error. Contact support with requestId.