Error Handling

Standard Error Response

{
  "error": "ErrorCode",
  "message": "Human-readable error description",
  "code": 400,
  "details": {},
  "requestId": "req-abc123",
  "timestamp": "2025-11-27T10:30:00Z"
}

HTTP Status Codes

Code Meaning Description
200 OK Request succeeded
201 Created Resource created successfully
400 Bad Request Invalid request payload
401 Unauthorized Missing or invalid JWT
403 Forbidden Insufficient permissions
404 Not Found Resource not found
409 Conflict Duplicate idempotency key with different payload
415 Unsupported Media Type Invalid API version requested
422 Unprocessable Entity Validation error
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error
503 Service Unavailable Service temporarily unavailable

Common Error Codes

Error Code HTTP Status Description
INVALID_TOKEN 401 JWT is invalid or expired
INSUFFICIENT_PERMISSIONS 403 User lacks required role
DEVICE_NOT_FOUND 404 DeviceGroupID does not exist
JOB_NOT_FOUND 404 JobID does not exist
MISSION_NOT_FOUND 404 MissionID does not exist
IDEMPOTENCY_CONFLICT 409 Same key used with different payload
VALIDATION_ERROR 422 Request validation failed
DEVICE_OFFLINE 503 Device is not currently online

IDI Integration API Documentation © 2025