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
Client Error Codes
Server Error Codes
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
