Loading
Error codes
Overview
This page describes the error codes that are returned from both client and server. In general, error codes greater than 0 are server-generated errors, and error codes less than 0 are client-generated errors. There are some exceptions like AEROSPIKE_ERR_TIMEOUT (9), which is generated by both client and server.
Client errors
Here are the error code tables for some of the main client libraries:
Server errors
The server error codes range from 1 to 255.
The server error codes are roughly categorized as:
- 1-49 - basic server errors
- 50-99 - security specific errors
- 100-109 - UDF specific errors
- 120-129 - Transaction specific errors
- 150-159 - batch specific errors
- 160-169 - GEO specific errors
- 200-219 - secondary index specific errors
The server log typically provides additional detail on the error at hand.
Value | Define | Notes | New in Version |
---|---|---|---|
0 | AS_OK | No error. | |
1 | AS_ERR_UNKNOWN | Unknown server error. | |
2 | AS_ERR_NOT_FOUND | No record is found with the specified namespace/set/key combination. Verify that the correct namespace/set/key is passed in. | |
3 | AS_ERR_GENERATION | Attempt to modify a record with unexpected generation. This happens on a read-modify-write situation where concurrent write requests collide and only one wins. | |
4 | AS_ERR_PARAMETER | Illegal parameter sent from client. Verify that client parameters are supported by the current server version. | |
5 | AS_ERR_RECORD_EXISTS | For write requests which specify 'CREATE_ONLY', request fail because record already exists. | |
6 | AS_ERR_BIN_EXISTS | Create-only command applied to a bin that already exists. | 4.6.0.2 |
7 | AS_ERR_CLUSTER_KEY_MISMATCH | On scan requests, the scan terminates because cluster is in migration. Only occurs when client requested 'fail_on_cluster_change' policy on scan. | |
8 | AS_ERR_OUT_OF_SPACE | Occurs when stop-writes is true (either memory - stop-writes-pct or indexes-memory-budget ). Can also occur if memory cannot be allocated anymore, but stop-writes should in general hit first. Namespace will no longer be able to accept write requests. | |
9 | AS_ERR_TIMEOUT | Request was not completed during the allocated time, thus aborted. | |
10 | AS_ERR_ALWAYS_FORBIDDEN | Write request is rejected because XDR configuration does not allow it. Only occurs when namespace configuration items allow-xdr-writes or allow-nonxdr-writes are false. | EE |
11 | AS_ERR_UNAVAILABLE | Partition unavailable (Strong Consistency mode). Will also be returned in AP mode when a transaction is received on an orphan node (a node that separated from a cluster) or, for versions prior to 4.5.2, during the initial balance for a very short time after a node joins a cluster. | |
12 | AS_ERR_INCOMPATIBLE_TYPE | Command is not allowed due to data type or namespace configuration incompatibility. For example, append to a float data type, or insert a non-integer when namespace is configured as data-in-index. | |
13 | AS_ERR_RECORD_TOO_BIG | Attempt to write a record larger than the configured max-record-size . See Known Limitations | |
14 | AS_ERR_KEY_BUSY | Too many concurrent commands (> transaction-pending-limit) on the same record. | |
15 | AS_ERR_SCAN_ABORT | Scan aborted by user on server. | |
16 | AS_ERR_UNSUPPORTED_FEATURE | This feature currently is not supported. | |
17 | AS_ERR_BIN_NOT_FOUND | Update-only command applied to a bin that does not exist. | 4.6.0.2 |
18 | AS_ERR_DEVICE_OVERLOAD | Write request is rejected because storage device is not keeping up. | |
19 | AS_ERR_KEY_MISMATCH | For update request on records which has key stored, the incoming key does not match the existing stored key. This indicates a RIPEMD160 key collision, and has never happened. | |
20 | AS_ERR_NAMESPACE | The passed in namespace does not exist on cluster, or no namespace parameter is passed in on request. | |
21 | AS_ERR_BIN_NAME | Bin name length greater than 14 characters, or maximum number of unique bin names are exceeded. | |
22 | AS_ERR_FORBIDDEN | Command not allowed at this time.
| |
23 | AS_ERR_ELEMENT_NOT_FOUND | Target was not found for commands that requires a target to be found. | 3.7.0.1 |
24 | AS_ERR_ELEMENT_EXISTS | Target already exist for commands that requires the target to not exist. | 3.7.0.1 |
25 | AS_ERR_ENTERPRISE_ONLY | Attempting Enterprise functionality on Community build. | EE |
26 | AS_ERR_OP_NOT_APPLICABLE | Command isn't able to be applied to the current contents of the bin. | 4.6.0.2 |
27 | AS_ERR_FILTERED_OUT | Filter expression indicated to not return this record. | 4.7.0.2 |
28 | AS_ERR_LOST_CONFLICT | Indicates that the client write lost to a conflicting write by XDR. This can happen when bin convergence is on and XDR wrote a later version of the record compared to the client write. | 5.4.0 |
32 | AS_ERR_XDR_KEY_BUSY | Occurs when a write must wait for a previous version to ship, and either the write would time out or there are already too many writes waiting. See ship-versions-policy . | 7.2.0 |
50 | AS_SEC_OK_LAST | End of security response. No error. | EE |
51 | AS_SEC_ERR_NOT_SUPPORTED | Security functionality not supported by connected server. | EE |
52 | AS_SEC_ERR_NOT_ENABLED | Security functionality not enabled by connected server. | EE |
53 | AS_SEC_ERR_SCHEME | Security scheme not supported. | EE |
54 | AS_SEC_ERR_COMMAND | Unrecognized security command. | EE |
55 | AS_SEC_ERR_FIELD | Field is not valid. | EE |
56 | AS_SEC_ERR_STATE | Security protocol not followed. | EE |
60 | AS_SEC_ERR_USER | No user supplied or unknown user. | EE |
61 | AS_SEC_ERR_USER_EXISTS | User already exists. | EE |
62 | AS_SEC_ERR_PASSWORD | Password does not exists or not recognized. | EE |
63 | AS_SEC_ERR_EXPIRED_PASSWORD | Expired password. | EE |
64 | AS_SEC_ERR_FORBIDDEN_PASSWORD | Forbidden password, such as a recently used password or one that does not meet requirements. | EE |
65 | AS_SEC_ERR_CREDENTIAL | Invalid credential or credential does not exist. | EE |
66 | AS_SEC_ERR_EXPIRED_SESSION | Expired session token. | EE 4.1.0.1 |
70 | AS_SEC_ERR_ROLE | No role(s) or unknown role(s). | EE |
71 | AS_SEC_ERR_ROLE_EXISTS | Role already exists. | EE |
72 | AS_SEC_ERR_PRIVILEGE | Privilege is invalid. | EE |
73 | AS_SEC_ERR_WHITELIST | Specified IP whitelist is invalid. | EE 4.6.0.2 |
74 | AS_SEC_ERR_QUOTAS_NOT_ENABLED | Quotas not enabled on the server. | EE 5.6 |
75 | AS_SEC_ERR_QUOTA | Invalid quota specified. | EE 5.6 |
80 | AS_SEC_ERR_NOT_AUTHENTICATED | User must be authenticated before performing database commands. | EE |
81 | AS_SEC_ERR_ROLE_VIOLATION | User does not possess the required role to perform the database command. | EE |
82 | AS_SEC_ERR_NOT_WHITELISTED | Client IP address is not on the IP whitelist. | EE 4.6.0.2 |
83 | AS_SEC_ERR_QUOTA_EXCEEDED | Quota currently exceeded. | EE 5.6 |
90 | AS_SEC_ERR_LDAP_NOT_ENABLED | LDAP feature not enabled on server. | EE 4.1.0.1 |
91 | AS_SEC_ERR_LDAP_SETUP | Error in LDAP setup. | EE 4.1.0.1 |
92 | AS_SEC_ERR_LDAP_TLS_SETUP | Error in LDAP TLS setup. | EE 4.1.0.1 |
93 | AS_SEC_ERR_LDAP_AUTHENTICATION | Error authenticating LDAP user. | EE 4.1.0.1 |
94 | AS_SEC_ERR_LDAP_QUERY | Error querying LDAP server. | EE 4.1.0.1 |
100 | AS_ERR_UDF_EXECUTION | A User-Defined Function (UDF) failed to execute. | |
120 | AS_ERR_MRT_BLOCKED | Occurs when trying to lock a record that is explicitly locked by another transaction. | 8.0 |
121 | AS_ERR_MRT_VERSION_MISMATCH | Occurs when the client fails to verify a read that was explicitly inside the transaction. | 8.0 |
122 | AS_ERR_MRT_EXPIRED | Occurs when trying to do a command against an expired transaction (past its timeout). | 8.0 |
123 | AS_ERR_MRT_TOO_MANY_WRITES | Occurs when attempting more than 4096 updates in a single transaction. | 8.0 |
124 | AS_ERR_MRT_COMMITTED | Occurs when trying to commit a transaction that has already been committed, typically after an inDoubt on the previous attempt. Treated as a success. | 8.0 |
125 | AS_ERR_MRT_ABORTED | Occurs when trying to commit a transaction that has already been aborted. Treated as a definite failure. | 8.0 |
126 | AS_ERR_MRT_ALREADY_LOCKED | Occurs when a transaction write with policy MRT_ON_LOCKING_ONLY times out and is retried, and the retry finds the original (timed-out) attempt did apply the command and lock the record – this makes retrying non-idempotent writes safe. | |
127 | AS_ERR_MRT_MONITOR_EXISTS | A client writing in multiple threads (not recommended, use batch instead) in one transaction may race such that more than one write tries to create the monitor record. In that scenario, all but the first write will fail with this error. | |
150 | AS_ERR_BATCH_DISABLED | Batch functionality has been disabled by configuring batch-index-thread to 0. | 3.6.0 |
152 | AS_ERR_BATCH_QUEUES_FULL | All batch queues are full. | 3.6.0 |
160 | AS_ERR_GEO_INVALID_GEOJSON | GeoJSON is malformed or not supported. | 3.7.0 |
200 | AS_ERR_SINDEX_FOUND | Secondary index already exists. | |
201 | AS_ERR_SINDEX_NOT_FOUND | Secondary index does not exist. | |
202 | AS_ERR_SINDEX_OOM | Secondary index memory space exceeded. | |
203 | AS_ERR_SINDEX_NOT_READABLE | Secondary index not available for query. Occurs when indexing creation has not finished. | |
204 | AS_ERR_SINDEX_GENERIC | Generic secondary index error. | |
205 | AS_ERR_SINDEX_NAME | Index name maximum length exceeded. | |
206 | AS_ERR_SINDEX_MAX_COUNT | Maximum number of indices exceeded. | |
210 | AS_ERR_QUERY_USER_ABORT | Secondary index query aborted. | |
211 | AS_ERR_QUERY_QUEUE_FULL | Secondary index queue full. | |
212 | AS_ERR_QUERY_TIMEOUT | Secondary index query timed out on server. | |
213 | AS_ERR_QUERY_CB | Generic query error. | |
214 | AS_ERR_QUERY_NET_IO | Generic query error. Query is aborted. | |
215 | AS_ERR_QUERY_DUPLICATE | Internal error. |