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
process_behind 1037 Storage process does not have recent mutations
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
proxy_memory_limit_exceeded 1042 CommitProxy commit memory limit exceeded
batch_transaction_throttled 1051 Batch GRV request rate limit exceeded
operation_cancelled 1101 Asynchronous operation cancelled
future_released 1102 Future has been released
tag_throttled 1213 Transaction tag is being throttled
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
no_commit_version 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
invalid_cache_eviction_policy 2024 Invalid cache eviction policy, only random and lru are supported
network_cannot_be_restarted 2025 Network can only be started once
blocked_from_network_thread 2026 Detected a deadlock in a callback called from the network thread
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
too_many_tags 2109 Too many tags set on transaction
tag_too_long 2110 Tag set on transaction is too long
too_many_tag_throttles 2111 Too many tag throttles have been created
special_keys_cross_module_read 2112 Special key space range read crosses modules. Refer to the SPECIAL_KEY_SPACE_RELAXED transaction option for more details.
special_keys_no_module_found 2113 Special key space range read does not intersect a module. Refer to the SPECIAL_KEY_SPACE_RELAXED transaction option for more details.
special_keys_write_disabled 2114 Special key space is not allowed to write by default. Refer to the SPECIAL_KEY_SPACE_ENABLE_WRITES transaction option for more details.
special_keys_no_write_module_found 2115 Special key space key or keyrange in set or clear does not intersect a module.
special_keys_cross_module_write 2116 Special key space clear crosses modules
special_keys_api_failure 2117 Api call through special keys failed. For more information, read the 0xff0xff/error_message key
tenant_name_required 2130 Tenant name must be specified to access data in the cluster
tenant_not_found 2131 Tenant does not exist
tenant_already_exists 2132 A tenant with the given name already exists
tenant_not_empty 2133 Cannot delete a non-empty tenant
invalid_tenant_name 2134 Tenant name cannot begin with xff
tenant_prefix_allocator_conflict 2135 The database already has keys stored at the prefix allocated for the tenant
tenants_disabled 2136 Tenants have been disabled in the cluster
unknown_tenant 2137 Tenant is not available from this server
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