Error Response Format
REST API
400 (varies by error type)
MCP/A2A (JSON-RPC 2.0)
HTTP Status Codes
| Status | Meaning | Action |
|---|---|---|
| 200 | OK | Success |
| 201 | Created | Resource created successfully |
| 204 | No Content | Success, no body returned |
| 400 | Bad Request | Fix your request (validation error) |
| 401 | Unauthorized | Invalid or missing authentication |
| 403 | Forbidden | Authenticated but not authorized |
| 404 | Not Found | Resource doesn’t exist |
| 409 | Conflict | Request conflicts with existing state |
| 429 | Too Many Requests | Rate limit exceeded, retry later |
| 500 | Internal Server Error | Server error, not your fault |
| 502 | Bad Gateway | Upstream service error |
| 503 | Service Unavailable | Service temporarily down |
| 504 | Gateway Timeout | Request timed out |
Common Error Codes
Authentication Errors (401)
- Missing
X-API-KeyorAuthorizationheader - Invalid/expired token
- Revoked API key
- Check API key format
- Refresh OAuth token
- Regenerate API key
Authorization Errors (403)
- API key lacks required scope
- User doesn’t have permission
- Resource access denied
- Create API key with correct scopes
- Contact account administrator
- Check resource ownership
Validation Errors (400)
- Missing required fields
- Invalid field types
- Constraint violations
- Check required fields
- Validate field format
- Review API documentation
Resource Not Found (404)
- Plugin/agent doesn’t exist
- Version not found
- Resource deleted
- Verify resource ID/name
- Check in correct account
- List available resources
Rate Limit (429)
- Wait until
X-RateLimit-Resettimestamp - Implement exponential backoff
- Optimize batch requests
Server Error (500)
- Server-side issue
- Database error
- External service failure
- Retry with exponential backoff
- Report with
request_id - Check status page
JSON-RPC Error Codes
Used by MCP and A2A protocols:| Code | Message | Meaning |
|---|---|---|
| -32700 | Parse error | Invalid JSON |
| -32600 | Invalid Request | Bad method/params format |
| -32601 | Method not found | Method doesn’t exist |
| -32602 | Invalid params | Wrong parameter types |
| -32603 | Internal error | Server-side error |
Rate Limiting
Limits
Default rate limits (per account):| Endpoint | Limit | Window |
|---|---|---|
| General API | 1,000 | 1 hour |
| Plugin upload | 100 | 1 hour |
| Tool calls | 10,000 | 1 hour |
| Agent creation | 50 | 1 day |
Rate Limit Headers
Every response includes:- Limit: Total requests allowed per window
- Remaining: Requests left in current window
- Reset: Unix timestamp when limit resets
Handling Rate Limits
1. Check HeadersError Handling Examples
Python
JavaScript
cURL with Retry
Debugging
Request ID
Every response includes a unique request ID for debugging:Verbose Logging
Enable debug logging:Health Check
Check API status:Status Page
Real-time status: https://status.noorle.com- Current incidents
- Maintenance windows
- Historical uptime
- API performance metrics