WordloopWordloop
Reference

Errors

Error codes with HTTP status, meaning, and operator action.

Errors

The Wordloop Core API follows RFC 9457 (application/problem+json) for error responses. Every error carries a status (HTTP code), a title (short stable description), and an optional detail string with context. Clients and AI agents should branch on status and title — these are stable and never renumbered.

Envelope

All error responses follow this shape:

{
  "status": 404,
  "title": "Not Found",
  "detail": "No meeting with the provided id exists.",
  "instance": "/meetings/abc123"
}

Validation errors include an errors array of field-level diagnostics:

{
  "status": 400,
  "title": "Unprocessable Entity",
  "detail": "Request body did not match the schema.",
  "errors": [
    { "message": "required", "path": "body.title", "value": "" }
  ]
}

Common HTTP status codes

StatusTitleMeaningAction
401UnauthorizedThe request lacked a valid Clerk token or session.Re-authenticate; refresh token.
403ForbiddenThe caller is authenticated but not authorised for this resource.Confirm role and scope. Do not retry.
404Not FoundThe resource does not exist.Verify the identifier; check user visibility.
400Unprocessable EntityThe request body did not match the schema.Inspect errors for field-level diagnostics.
409ConflictAn Idempotency-Key was reused with a different payload.Generate a fresh key; retry.
429Too Many RequestsPer-caller rate limit exceeded.Back off per Retry-After.
504Gateway TimeoutA downstream dependency timed out.Retry with exponential backoff.
500Internal Server ErrorUnexpected server error; details captured in our observability.Retry with backoff; escalate if sustained.

WebSocket error frames

Real-time errors use a custom envelope on the wire:

{
  "type": "error",
  "error": {
    "code": "SESSION_EXPIRED",
    "message": "Session token expired; reconnect with a fresh one.",
    "details": { "session_id": "sess_..." }
  }
}
CodeMeaningAction
SESSION_EXPIREDThe WebSocket session token is no longer valid.Fetch a new token; reconnect.
RESUME_FAILEDThe server could not resume the session at the supplied sequence.Reconnect without a resume token; rehydrate state.
BACKPRESSURE_SHEDInformational: the server dropped a low-priority message because the client could not keep up.No client action required.

Further reading

On this page