Skip to content
Odinex Cloud
Concepts

Errors

The error format and the codes the API returns.

Every error response, whatever the status code, has the same JSON body:

{
  "error": {
    "code": "not_found",
    "message": "Server not found",
    "details": {}
  }
}
  • code is stable and machine-readable. Handle errors by code, not by message.
  • message is a human-readable explanation. It can change.
  • details is only present for some codes and carries extra fields (see below).

Common codes

StatusCodeMeaning
400invalid_inputThe request is malformed or a value is not allowed. The message says what is wrong.
401unauthorizedNo valid token or session.
402insufficient_fundsThe balance does not cover the new resource. details: balance, required (EUR). See Billing.
403forbiddenThe token or user may not do this (for example a read token making a change, or a console-only endpoint called with a token).
403limit_exceededAn organization limit is reached. details: resource, limit.
403account_suspendedThe account is suspended, for example because the balance stayed negative.
403email_not_verifiedConfirm your email address first.
404not_foundThe resource does not exist in this project.
405method_not_allowedThe endpoint does not support this HTTP method.
409resource_busyAnother action is running on the resource. Retry when it has finished.
409protectedThe resource has delete protection. Turn it off first.
409uniqueness_errorA resource with this name already exists.
409resource_in_useThe resource is still used, e.g. a network with attached servers or a firewall that is applied.
409limit_exceededOn a load balancer type change: the services or targets don't fit the smaller type.
409variousThe resource is not in the right state, e.g. server_not_stopped, server_not_running, volume_attached, not_assigned.
429rate_limit_exceededToo many requests. Wait for Retry-After seconds. See Rate limits.
500internal_errorSomething went wrong on our side. Retry later; contact support if it persists.
503resource_unavailableThe location has no capacity or is in maintenance, or the feature is unavailable there right now.

Errors of a failed action use the same code and message fields inside the action's error object.

On this page