Error Codes

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