aerospike.exception — Aerospike Exceptions

Example

This is a simple example on how to catch an exception thrown by the Aerospike client:

import aerospike
from aerospike import exception as ex

try:
    config = { 'hosts': [ ('127.0.0.1', 3000)], 'policies': { 'total_timeout': 1200}}
    client = aerospike.client(config).connect()
    client.close()
except ex.AerospikeError as e:
    print("Error: {0} [{1}]".format(e.msg, e.code))

New in version 1.0.44.

Base Class

exception aerospike.exception.AerospikeError

The parent class of all exceptions raised by the Aerospike client.

An exception of this class type must have the following attributes:

code

The associated status code.

msg

The human-readable error message.

file

File where the exception occurred.

line

Line in the file where the exception occurred.

in_doubt

True if it is possible that the operation succeeded. See In Doubt Status.

In addition to accessing these attributes by their names, they can also be checked by calling exc.args[i], where exc is the exception object and i is the index of the attribute in the order they appear above. For example, run exc.args[4] to get the in_doubt flag.

Inherits from exceptions.Exception.

Client Errors

exception aerospike.exception.ClientError

Exception class for client-side errors, often due to misconfiguration or misuse of the API methods.

exception aerospike.exception.InvalidHostError

Subclass of ClientError.

exception aerospike.exception.ParamError

The operation was not performed because of invalid parameters.

Subclass of ClientError.

exception aerospike.exception.MaxErrorRateExceeded

The operation was not performed because the maximum error rate has been exceeded.

Subclass of ClientError.

Server Errors

exception aerospike.exception.ServerError

The parent class for all errors returned from the cluster.

exception aerospike.exception.InvalidRequest

Protocol-level error.

Subclass of ServerError.

exception aerospike.exception.OpNotApplicable

The operation cannot be applied to the current bin value on the server.

Subclass of ServerError.

exception aerospike.exception.FilteredOut

The transaction was not performed because the expression was false.

Subclass of ServerError.

exception aerospike.exception.ServerFull

The server node is running out of memory and/or storage device space reserved for the specified namespace.

Subclass of ServerError.

exception aerospike.exception.AlwaysForbidden

Operation not allowed in current configuration.

Subclass of ServerError.

exception aerospike.exception.UnsupportedFeature

Encountered an unimplemented server feature.

Subclass of ServerError.

exception aerospike.exception.DeviceOverload

The server node’s storage device(s) can’t keep up with the write load.

Subclass of ServerError.

exception aerospike.exception.NamespaceNotFound

Namespace in request not found on server.

Subclass of ServerError.

exception aerospike.exception.ForbiddenError

Operation not allowed at this time.

Subclass of ServerError.

exception aerospike.exception.ElementExistsError

Raised when trying to alter a map key which already exists, when using a create_only policy.

Subclass of ServerError.

exception aerospike.exception.ElementNotFoundError

Raised when trying to alter a map key which does not exist, when using an update_only policy.

Subclass of ServerError.

Record Errors

exception aerospike.exception.RecordError

The parent class for record and bin exceptions exceptions associated with read and write operations.

key

The key identifying the record.

bin

(Optional) the bin associated with the error.

Subclass of ServerError.

exception aerospike.exception.RecordKeyMismatch

Record key sent with transaction did not match key stored on server.

Subclass of RecordError.

exception aerospike.exception.RecordNotFound

Record does not exist in database. May be returned by either a read or a write with the policy aerospike.POLICY_EXISTS_UPDATE.

Subclass of RecordError.

exception aerospike.exception.RecordGenerationError

Generation of record in database does not satisfy write policy.

Subclass of RecordError.

exception aerospike.exception.RecordExistsError

Record already exists. May be returned by a write with policy aerospike.POLICY_EXISTS_CREATE.

Subclass of RecordError.

exception aerospike.exception.RecordBusy

Too may concurrent requests for one record - a “hot-key” situation.

Subclass of RecordError.

exception aerospike.exception.RecordTooBig

Record being (re-)written can’t fit in a storage write block.

Subclass of RecordError.

exception aerospike.exception.BinNameError

Length of bin name exceeds the limit of 14 characters.

Subclass of RecordError.

exception aerospike.exception.BinIncompatibleType

Bin modification operation can’t be done on an existing bin due to its value type (for example appending to an integer).

Subclass of RecordError.

Index Errors

exception aerospike.exception.IndexError

The parent class for indexing exceptions.

index_name

The name of the index associated with the error.

Subclass of ServerError.

exception aerospike.exception.IndexNotFound

Subclass of IndexError.

exception aerospike.exception.IndexFoundError

Subclass of IndexError.

exception aerospike.exception.IndexOOM

The index is out of memory.

Subclass of IndexError.

exception aerospike.exception.IndexNotReadable

Subclass of IndexError.

exception aerospike.exception.IndexNameMaxLen

Subclass of IndexError.

exception aerospike.exception.IndexNameMaxCount

Reached the maximum allowed number of indexes.

Subclass of IndexError.

Query Errors

exception aerospike.exception.QueryError

Exception class for query errors.

Subclass of AerospikeError.

exception aerospike.exception.QueryQueueFull

Subclass of QueryError.

exception aerospike.exception.QueryTimeout

Subclass of QueryError.

Cluster Errors

exception aerospike.exception.ClusterError

Cluster discovery and connection errors.

Subclass of AerospikeError.

exception aerospike.exception.ClusterChangeError

A cluster state change occurred during the request. This may also be returned by scan operations with the fail-on-cluster-change flag set.

Subclass of ClusterError.

Admin Errors

exception aerospike.exception.AdminError

The parent class for exceptions of the security API.

exception aerospike.exception.ExpiredPassword

Subclass of AdminError.

exception aerospike.exception.ForbiddenPassword

Subclass of AdminError.

exception aerospike.exception.IllegalState

Subclass of AdminError.

exception aerospike.exception.InvalidCommand

Subclass of AdminError.

exception aerospike.exception.InvalidCredential

Subclass of AdminError.

exception aerospike.exception.InvalidField

Subclass of AdminError.

exception aerospike.exception.InvalidPassword

Subclass of AdminError.

exception aerospike.exception.InvalidPrivilege

Subclass of AdminError.

exception aerospike.exception.InvalidRole

Subclass of AdminError.

exception aerospike.exception.InvalidUser

Subclass of AdminError.

exception aerospike.exception.NotAuthenticated

Subclass of AdminError.

exception aerospike.exception.RoleExistsError

Subclass of AdminError.

exception aerospike.exception.RoleViolation

Subclass of AdminError.

exception aerospike.exception.SecurityNotEnabled

Subclass of AdminError.

exception aerospike.exception.SecurityNotSupported

Subclass of AdminError.

exception aerospike.exception.SecuritySchemeNotSupported

Subclass of AdminError.

exception aerospike.exception.UserExistsError

Subclass of AdminError.

UDF Errors

exception aerospike.exception.UDFError

The parent class for UDF exceptions exceptions.

Subclass of ServerError.

module

The UDF module associated with the error.

func

Optionally the name of the UDF function.

exception aerospike.exception.UDFNotFound

Subclass of UDFError.

exception aerospike.exception.LuaFileNotFound

Subclass of UDFError.

Exception Hierarchy

AerospikeError (*)
 +-- TimeoutError (9)
 +-- ClientError (-1)
 |    +-- InvalidHost (-4)
 |    +-- ParamError (-2)
 +-- ServerError (1)
      +-- InvalidRequest (4)
      +-- ServerFull (8)
      +-- AlwaysForbidden (10)
      +-- UnsupportedFeature (16)
      +-- DeviceOverload (18)
      +-- NamespaceNotFound (20)
      +-- ForbiddenError (22)
      +-- ElementNotFoundError (23)
      +-- ElementExistsError (24)
      +-- RecordError (*)
      |    +-- RecordKeyMismatch (19)
      |    +-- RecordNotFound (2)
      |    +-- RecordGenerationError (3)
      |    +-- RecordExistsError (5)
      |    +-- RecordTooBig (13)
      |    +-- RecordBusy (14)
      |    +-- BinNameError (21)
      |    +-- BinIncompatibleType (12)
      +-- IndexError (204)
      |    +-- IndexNotFound (201)
      |    +-- IndexFoundError (200)
      |    +-- IndexOOM (202)
      |    +-- IndexNotReadable (203)
      |    +-- IndexNameMaxLen (205)
      |    +-- IndexNameMaxCount (206)
      +-- QueryError (213)
      |    +-- QueryQueueFull (211)
      |    +-- QueryTimeout (212)
      +-- ClusterError (11)
      |    +-- ClusterChangeError (7)
      +-- AdminError (*)
      |    +-- SecurityNotSupported (51)
      |    +-- SecurityNotEnabled (52)
      |    +-- SecuritySchemeNotSupported (53)
      |    +-- InvalidCommand (54)
      |    +-- InvalidField (55)
      |    +-- IllegalState (56)
      |    +-- InvalidUser (60)
      |    +-- UserExistsError (61)
      |    +-- InvalidPassword (62)
      |    +-- ExpiredPassword (63)
      |    +-- ForbiddenPassword (64)
      |    +-- InvalidCredential (65)
      |    +-- InvalidRole (70)
      |    +-- RoleExistsError (71)
      |    +-- RoleViolation (81)
      |    +-- InvalidPrivilege (72)
      |    +-- NotAuthenticated (80)
      +-- UDFError (*)
           +-- UDFNotFound (1301)
           +-- LuaFileNotFound (1302)

In Doubt Status

The in-doubt status of a caught exception can be checked by looking at the 5th element of its args tuple:

key = 'test', 'demo', 1
record = {'some': 'thing'}
try:
  client.put(key, record)
except AerospikeError as exc:
  print("The in doubt nature of the operation is: {}".format(exc.args[4])

New in version 3.0.1.