Error Response Format
All error responses follow a consistent JSON structure:code: Machine-readable error codestatus: HTTP status code as a stringdetail: Human-readable error messagemeta: Additional context (optional)
HTTP Status Codes
Success Codes
| Code | Meaning | Description |
|---|---|---|
200 | OK | Request successful, response includes data |
201 | Created | Resource successfully created |
204 | No Content | Request successful, no response body |
Client Error Codes
| Code | Meaning | Description |
|---|---|---|
400 | Bad Request | Malformed request or invalid JSON |
401 | Unauthorized | Missing or invalid authentication |
403 | Forbidden | Authenticated but lacks permission |
404 | Not Found | Resource does not exist |
405 | Method Not Allowed | HTTP method not supported for endpoint |
409 | Conflict | Request conflicts with current state |
422 | Unprocessable Entity | Validation error |
429 | Too Many Requests | Rate limit exceeded |
Server Error Codes
| Code | Meaning | Description |
|---|---|---|
500 | Internal Server Error | Unexpected server error |
502 | Bad Gateway | Error communicating with Wings |
503 | Service Unavailable | Service temporarily unavailable |
Common Error Types
Authentication Errors
401 Unauthorized
Cause: Missing or invalid API key- Verify API key is included in
Authorization: Bearer {key}header - Check that the API key hasn’t expired
- Ensure the key hasn’t been deleted
403 Forbidden - IP Restriction
Cause: Request from unauthorized IP address- Add your IP address to the API key’s allowed IPs
- Remove IP restrictions if appropriate
403 Forbidden - Insufficient Permissions
Cause: API key lacks required permissions- Update Application API key permissions
- Verify user has access to the server (Client API)
Validation Errors
422 Unprocessable Entity
Cause: Request data failed validation- Review the
source_fieldto identify which field failed - Check the
ruleto understand the validation requirement - Correct the request data and retry
Resource Errors
404 Not Found
Cause: Requested resource doesn’t exist- Verify the resource ID is correct
- Check that the resource hasn’t been deleted
- For servers, ensure you have access permissions
409 Conflict
Cause: Request conflicts with current resource state- Server is being transferred
- Server is installing
- Backup is already running
- Resource is locked
Rate Limiting
429 Too Many Requests
Cause: Exceeded rate limit- Wait for the time specified in
Retry-Afterheader - Implement exponential backoff
- Reduce request frequency
- See Rate Limiting for details
Service Limits
Service Limit Exceeded
Cause: Reached resource limit- Maximum 10 tasks per schedule
- Maximum 25 API keys per user
- Server-specific backup limits
- Database limits
Server State Errors
403 Forbidden - Server State
Cause: Server in wrong state for operation- Server is installing
- Server is transferring
- Server is suspended
- Server is being restored
Bad Request Errors
400 Bad Request - Invalid JSON
Cause: Malformed JSON in request body- Validate JSON syntax before sending
- Ensure
Content-Type: application/jsonheader is set - Check for trailing commas or unclosed brackets
400 Bad Request - Missing Parameter
Gateway Errors
502 Bad Gateway
Cause: Panel cannot communicate with Wings- Verify Wings is running on the node
- Check network connectivity between Panel and Wings
- Verify Wings configuration
- Check Wings logs for errors
