Errors and Rate Limiting
Error response format
All error responses use a compact JSON format:
json
{
"error": "Human-readable error message",
"code": "MACHINE_READABLE_CODE"
}| Field | Type | Description |
|---|---|---|
error | string | Human-readable error description |
code | string | Optional machine-readable error code |
HTTP status codes
| Status | Meaning |
|---|---|
400 | Bad request |
401 | Missing or invalid authentication |
403 | Authenticated but not permitted |
404 | Resource not found |
409 | Request conflicts with current state |
429 | Request rate limited |
500 | Internal server error |
Common error codes
| Code | Typical meaning |
|---|---|
INVALID_CREDENTIALS | Wrong username or password |
TOKEN_EXPIRED | Session token has expired |
PERMISSION_DENIED | The signed-in user lacks access |
NOT_FOUND | Requested resource not found |
RATE_LIMITED | Too many requests |
STREAM_UNAVAILABLE | Stream is not ready or cannot start |
Rate limiting
OmniLux rate-limits API requests to protect the server. Exact thresholds and behavior can vary by endpoint and server configuration, so clients should always handle 429 responses gracefully and retry later.