Skip to main content

Error Handling

Error responses and codes.

Error Response Format

{
"error": "error_code",
"message": "Human-readable error description",
"details": {},
"status": "error"
}

Common Error Codes

Authentication Errors

CodeHTTP StatusDescription
authentication_required401Missing authentication
invalid_api_key401Invalid or expired API key
invalid_token401Invalid or expired JWT
insufficient_permissions403Missing required permissions

Validation Errors

CodeHTTP StatusDescription
validation_error400Request validation failed
invalid_model400Model not found or unavailable
invalid_provider400Provider not supported
missing_required_field400Required field missing

Resource Errors

CodeHTTP StatusDescription
not_found404Resource not found
agent_not_found404Agent does not exist
tenant_not_found404Tenant does not exist

Rate Limiting

CodeHTTP StatusDescription
rate_limit_exceeded429Too many requests
quota_exceeded429Monthly quota exceeded

Provider Errors

CodeHTTP StatusDescription
provider_error502Upstream provider error
provider_timeout504Provider request timeout
provider_unavailable503Provider temporarily unavailable

Server Errors

CodeHTTP StatusDescription
internal_error500Unexpected server error
service_unavailable503Service maintenance

Error Examples

Invalid API Key

{
"error": "invalid_api_key",
"message": "The provided API key is invalid or expired",
"status": "error"
}

Rate Limit Exceeded

{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 60 seconds.",
"details": {
"limit": 100,
"remaining": 0,
"reset": 1702837200
},
"status": "error"
}

Validation Error

{
"error": "validation_error",
"message": "Request validation failed",
"details": {
"field": "query",
"issue": "Query cannot be empty"
},
"status": "error"
}

Provider Error

{
"error": "provider_error",
"message": "OpenAI API returned an error",
"details": {
"provider": "openai",
"original_error": "Rate limit exceeded"
},
"status": "error"
}

GET /api/errors

List recent errors.

Authentication: Not required

Response:

{
"success": true,
"data": [
{
"id": "uuid",
"error": "provider_error",
"message": "OpenAI API error",
"timestamp": "2025-12-17T18:00:00.000Z"
}
],
"count": 10
}

GET /api/errors/metrics

Error metrics and statistics.

Authentication: Not required

Response:

{
"success": true,
"total_errors": 50,
"by_type": {
"provider_error": 30,
"rate_limit_exceeded": 15,
"validation_error": 5
},
"error_rate": 0.05
}