FoundationDB may return the following error codes from API functions. If you need to check for specific errors (for example, to implement custom retry logic), you must use the numerical code, since the other fields are particularly likely to change unexpectedly. Error handling logic should also be prepared for new error codes which are not listed here.
Name | Code | Description |
---|---|---|
success | 0 | Success |
operation_failed | 1000 | Operation failed |
timed_out | 1004 | Operation timed out |
transaction_too_old | 1007 | Transaction is too old to perform reads or be committed |
future_version | 1009 | Request for future version |
not_committed | 1020 | Transaction not committed due to conflict with another transaction |
commit_unknown_result | 1021 | Transaction may or may not have committed |
transaction_cancelled | 1025 | Operation aborted because the transaction was cancelled |
transaction_timed_out | 1031 | Operation aborted because the transaction timed out |
too_many_watches | 1032 | Too many watches currently set |
watches_disabled | 1034 | Watches cannot be set if read your writes is disabled |
accessed_unreadable | 1036 | Read or wrote an unreadable key |
database_locked | 1038 | Database is locked |
cluster_version_changed | 1039 | Cluster has been upgraded to a new protocol version |
external_client_already_loaded | 1040 | External client has already been loaded |
operation_cancelled | 1101 | Asynchronous operation cancelled |
future_released | 1102 | Future has been released |
platform_error | 1500 | Platform error |
large_alloc_failed | 1501 | Large block allocation failed |
performance_counter_error | 1502 | QueryPerformanceCounter error |
io_error | 1510 | Disk i/o operation failed |
file_not_found | 1511 | File not found |
bind_failed | 1512 | Unable to bind to network |
file_not_readable | 1513 | File could not be read |
file_not_writable | 1514 | File could not be written |
no_cluster_file_found | 1515 | No cluster file found in current directory or default location |
file_too_large | 1516 | File too large to be read |
client_invalid_operation | 2000 | Invalid API call |
commit_read_incomplete | 2002 | Commit with incomplete read |
test_specification_invalid | 2003 | Invalid test specification |
key_outside_legal_range | 2004 | Key outside legal range |
inverted_range | 2005 | Range begin key larger than end key |
invalid_option_value | 2006 | Option set with an invalid value |
invalid_option | 2007 | Option not valid in this context |
network_not_setup | 2008 | Action not possible before the network is configured |
network_already_setup | 2009 | Network can be configured only once |
read_version_already_set | 2010 | Transaction already has a read version set |
version_invalid | 2011 | Version not valid |
range_limits_invalid | 2012 | Range limits not valid |
invalid_database_name | 2013 | Database name must be 'DB' |
attribute_not_found | 2014 | Attribute not found in string |
future_not_set | 2015 | Future not ready |
future_not_error | 2016 | Future not an error |
used_during_commit | 2017 | Operation issued while a commit was outstanding |
invalid_mutation_type | 2018 | Unrecognized atomic mutation type |
transaction_invalid_version | 2020 | Transaction does not have a valid commit version |
transaction_read_only | 2021 | Transaction is read-only and therefore does not have a commit version |
environment_variable_network_option_failed | 2022 | Environment variable network option could not be set |
transaction_read_only | 2023 | Attempted to commit a transaction specified as read-only |
incompatible_protocol_version | 2100 | Incompatible protocol version |
transaction_too_large | 2101 | Transaction exceeds byte limit |
key_too_large | 2102 | Key length exceeds limit |
value_too_large | 2103 | Value length exceeds limit |
connection_string_invalid | 2104 | Connection string invalid |
address_in_use | 2105 | Local address in use |
invalid_local_address | 2106 | Invalid local address |
tls_error | 2107 | TLS error |
unsupported_operation | 2108 | Operation is not supported |
api_version_unset | 2200 | API version is not set |
api_version_already_set | 2201 | API version may be set only once |
api_version_invalid | 2202 | API version not valid |
api_version_not_supported | 2203 | API version not supported |
exact_mode_without_limits | 2210 | EXACT streaming mode requires limits, but none were given |
unknown_error | 4000 | An unknown error occurred |
internal_error | 4100 | An internal error occurred |