Error codes#
Errors related to hardware
Code | Name | Description |
---|---|---|
0x0501 | ps_store_full | Flash reserved for PS store is full |
0x0502 | ps_key_not_found | PS key not found |
0x0503 | i2c_ack_missing | Acknowledge for i2c was not received. |
0x0504 | i2c_timeout | I2C read or write timed out. |
Errors related to BGAPI protocol
Code | Name | Description |
---|---|---|
0x0100 | success | No error |
0x0101 | invalid_conn_handle | Invalid GATT connection handle. |
0x0102 | waiting_response | Waiting response from GATT server to previous |
procedure. | ||
0x0103 | gatt_connection_timeout | GATT connection is closed due procedure |
timeout. | ||
0x0180 | invalid_param | Command contained invalid parameter |
0x0181 | wrong_state | Device is in wrong state to receive command |
0x0182 | out_of_memory | Device has run out of memory |
0x0183 | not_implemented | Feature is not implemented |
0x0184 | invalid_command | Command was not recognized |
0x0185 | timeout | A command or procedure failed or a link lost due to timeout |
0x0186 | not_connected | Connection handle passed is to command is not a valid |
handle | ||
0x0187 | flow | Command would cause either underflow or overflow error |
0x0188 | user_attribute | User attribute was accessed through API which is not |
supported | ||
0x0189 | invalid_license_key | No valid license key found |
0x018a | command_too_long | Command maximum length exceeded |
0x018b | out_of_bonds | Bonding procedure can't be started because device has |
no space left for bond. | ||
0x018c | unspecified | Unspecified error |
0x018d | hardware | Hardware failure |
0x018e | buffers_full | Command not accepted, because internal buffers are |
full | ||
0x018f | disconnected | Command or Procedure failed due to disconnection |
0x0190 | too_many_requests | Too many Simultaneous Requests |
0x0191 | not_supported | Feature is not supported in this firmware build |
0x0192 | no_bonding | The bonding does not exist. |
0x0193 | crypto | Error using crypto functions |
0x0194 | data_corrupted | Data was corrupted. |
0x0195 | command_incomplete | Data received does not form a complete command |
0x0196 | not_initialized | Feature or subsystem not initialized |
0x0197 | invalid_sync_handle | Invalid periodic advertising sync handle |
0x0198 | invalid_module_action | Bluetooth cannot be used on this hardware |
0x0199 | radio | Error received from radio |
Errors from Security Manager Protocol#
Code | Name | Description |
---|---|---|
0x0301 | passkey_entry_failed | The user input of passkey failed, for example, |
the user cancelled the operation | ||
0x0302 | oob_not_available | Out of Band data is not available for |
authentication | ||
0x0303 | authentication_requirements | The pairing procedure cannot be |
performed as authentication requirements cannot be met due to IO capabilities | ||
of one or both devices | ||
0x0304 | confirm_value_failed | The confirm value does not match the |
calculated compare value | ||
0x0305 | pairing_not_supported | Pairing is not supported by the device |
0x0306 | encryption_key_size | The resultant encryption key size is |
insufficient for the security requirements of this device | ||
0x0307 | command_not_supported | The SMP command received is not supported on |
this device | ||
0x0308 | unspecified_reason | Pairing failed due to an unspecified reason |
0x0309 | repeated_attempts | Pairing or authentication procedure is disallowed |
because too little time has elapsed since last pairing request or security | ||
request | ||
0x030a | invalid_parameters | The Invalid Parameters error code indicates: the |
command length is invalid or a parameter is outside of the specified range. | ||
0x030b | dhkey_check_failed | Indicates to the remote device that the DHKey |
Check value received doesn't match the one calculated by the local device. | ||
0x030c | numeric_comparison_failed | Indicates that the confirm values in the |
numeric comparison protocol do not match. | ||
0x030d | bredr_pairing_in_progress | Indicates that the pairing over the LE |
transport failed due to a Pairing Request sent over the BR/EDR transport in | ||
process. | ||
0x030e | cross_transport_key_derivation_generation_not_allowed | Indicates |
that the BR/EDR Link Key generated on the BR/EDR transport cannot be used to | ||
derive and distribute keys for the LE transport. |
Bluetooth errors#
Code | Name | Description |
---|---|---|
0x0200 | error_success | Command completed succesfully |
0x0202 | unknown_connection_identifier | Connection does not exist, or |
connection open request was cancelled. | ||
0x0205 | authentication_failure | Pairing or authentication failed due to |
incorrect results in the pairing or authentication procedure. This could be | ||
due to an incorrect PIN or Link Key | ||
0x0206 | pin_or_key_missing | Pairing failed because of missing PIN, or |
authentication failed because of missing Key | ||
0x0207 | memory_capacity_exceeded | Controller is out of memory. |
0x0208 | connection_timeout | Link supervision timeout has expired. |
0x0209 | connection_limit_exceeded | Controller is at limit of connections it |
can support. | ||
0x020a | synchronous_connectiontion_limit_exceeded | The Synchronous |
Connection Limit to a Device Exceeded error code indicates that the Controller | ||
has reached the limit to the number of synchronous connections that can be | ||
achieved to a device. | ||
0x020b | acl_connection_already_exists | The ACL Connection Already Exists |
error code indicates that an attempt to create a new ACL Connection to a | ||
device when there is already a connection to this device. | ||
0x020c | command_disallowed | Command requested cannot be executed because the |
Controller is in a state where it cannot process this command at this time. | ||
0x020d | connection_rejected_due_to_limited_resources | The Connection |
Rejected Due To Limited Resources error code indicates that an incoming | ||
connection was rejected due to limited resources. | ||
0x020e | connection_rejected_due_to_security_reasons | The Connection Rejected |
Due To Security Reasons error code indicates that a connection was rejected | ||
due to security requirements not being fulfilled, like authentication or | ||
pairing. | ||
0x020f | connection_rejected_due_to_unacceptable_bd_addr | The Connection was |
rejected because this device does not accept the BD_ADDR. This may be because | ||
the device will only accept connections from specific BD_ADDRs. | ||
0x0210 | connection_accept_timeout_exceeded | The Connection Accept Timeout |
has been exceeded for this connection attempt. | ||
0x0211 | unsupported_feature_or_parameter_value | A feature or parameter value |
in the HCI command is not supported. | ||
0x0212 | invalid_command_parameters | Command contained invalid parameters. |
0x0213 | remote_user_terminated | User on the remote device terminated the |
connection. | ||
0x0214 | remote_device_terminated_connection_due_to_low_resources | The remote |
device terminated the connection because of low resources | ||
0x0215 | remote_powering_off | Remote Device Terminated Connection due to |
Power Off | ||
0x0216 | connection_terminated_by_local_host | Local device terminated the |
connection. | ||
0x0217 | repeated_attempts | The Controller is disallowing an authentication |
or pairing procedure because too little time has elapsed since the last | ||
authentication or pairing attempt failed. | ||
0x0218 | pairing_not_allowed | The device does not allow pairing. This can be |
for example, when a device only allows pairing during a certain time window | ||
after some user input allows pairing | ||
0x021a | unsupported_remote_feature | The remote device does not support the |
feature associated with the issued command. | ||
0x021f | unspecified_error | No other error code specified is appropriate to |
use. | ||
0x0222 | ll_response_timeout | Connection terminated due to link-layer |
procedure timeout. | ||
0x0223 | ll_procedure_collision | LL procedure has collided with the same |
transaction or procedure that is already in progress. | ||
0x0225 | encryption_mode_not_acceptable | The requested encryption mode is not |
acceptable at this time. | ||
0x0226 | link_key_cannot_be_changed | Link key cannot be changed because a |
fixed unit key is being used. | ||
0x0228 | instant_passed | LMP PDU or LL PDU that includes an instant cannot be |
performed because the instant when this would have occurred has passed. | ||
0x0229 | pairing_with_unit_key_not_supported | It was not possible to pair as |
a unit key was requested and it is not supported. | ||
0x022a | different_transaction_collision | LMP transaction was started that |
collides with an ongoing transaction. | ||
0x022e | channel_assessment_not_supported | The Controller cannot perform |
channel assessment because it is not supported. | ||
0x022f | insufficient_security | The HCI command or LMP PDU sent is only |
possible on an encrypted link. | ||
0x0230 | parameter_out_of_mandatory_range | A parameter value requested is |
outside the mandatory range of parameters for the given HCI command or LMP | ||
PDU. | ||
0x0237 | simple_pairing_not_supported_by_host | The IO capabilities request or |
response was rejected because the sending Host does not support Secure Simple | ||
Pairing even though the receiving Link Manager does. | ||
0x0238 | host_busy_pairing | The Host is busy with another pairing operation |
and unable to support the requested pairing. The receiving device should retry | ||
pairing again later. | ||
0x0239 | connection_rejected_due_to_no_suitable_channel_found | The Controller |
could not calculate an appropriate value for the Channel selection operation. | ||
0x023a | controller_busy | Operation was rejected because the controller is |
busy and unable to process the request. | ||
0x023b | unacceptable_connection_interval | Remote device terminated the |
connection because of an unacceptable connection interval. | ||
0x023c | advertising_timeout | Ddvertising for a fixed duration completed or, |
for directed advertising, that advertising completed without a connection | ||
being created. | ||
0x023d | connection_terminated_due_to_mic_failure | Connection was terminated |
because the Message Integrity Check (MIC) failed on a received packet. | ||
0x023e | connection_failed_to_be_established | LL initiated a connection but |
the connection has failed to be established. Controller did not receive any | ||
packets from remote end. | ||
0x023f | mac_connection_failed | The MAC of the 802.11 AMP was requested to |
connect to a peer, but the connection failed. | ||
0x0240 | ||
coarse_clock_adjustment_rejected_but_will_try_to_adjust_using_clock_dragging | ||
The master, at this time, is unable to make a coarse adjustment to the piconet | ||
clock, using the supplied parameters. Instead the master will attempt to move | ||
the clock using clock dragging. | ||
0x0242 | unknown_advertising_identifier | A command was sent from the Host |
that should identify an Advertising or Sync handle, but the Advertising or | ||
Sync handle does not exist. | ||
0x0243 | limit_reached | Number of operations requested has been reached and |
has indicated the completion of the activity (e.g., advertising or scanning). | ||
0x0244 | operation_cancelled_by_host | A request to the Controller issued by |
the Host and still pending was successfully canceled. | ||
0x0245 | packet_too_long | An attempt was made to send or receive a packet |
that exceeds the maximum allowed packet length. |
Application errors#
Code | Name | Description |
---|---|---|
0x0a01 | file_open_failed | File open failed. |
0x0a02 | xml_parse_failed | XML parsing failed. |
0x0a03 | device_connection_failed | Device connection failed. |
0x0a04 | device_comunication_failed | Device communication failed. |
0x0a05 | authentication_failed | Device authentication failed. |
0x0a06 | incorrect_gatt_database | Device has incorrect GATT database. |
0x0a07 | disconnected_due_to_procedure_collision | Device disconnected due to |
procedure collision. | ||
0x0a08 | disconnected_due_to_secure_session_failed | Device disconnected due |
to failure to establish or reestablish a secure session. | ||
0x0a09 | encryption_decryption_error | Encrypion/decryption operation failed. |
0x0a0a | maximum_retries | Maximum allowed retries exceeded. |
0x0a0b | data_parse_failed | Data parsing failed. |
0x0a0c | pairing_removed | Pairing established by the application layer |
protocol has been removed. | ||
0x0a0d | inactive_timeout | Inactive timeout. |
0x0a0e | mismatched_or_insufficient_security | Mismatched or insufficient |
security level |
Errors from Attribute Protocol#
Code | Name | Description |
---|---|---|
0x0401 | invalid_handle | The attribute handle given was not valid on this |
server | ||
0x0402 | read_not_permitted | The attribute cannot be read |
0x0403 | write_not_permitted | The attribute cannot be written |
0x0404 | invalid_pdu | The attribute PDU was invalid |
0x0405 | insufficient_authentication | The attribute requires authentication |
before it can be read or written. | ||
0x0406 | request_not_supported | Attribute Server does not support the request |
received from the client. | ||
0x0407 | invalid_offset | Offset specified was past the end of the attribute |
0x0408 | insufficient_authorization | The attribute requires authorization |
before it can be read or written. | ||
0x0409 | prepare_queue_full | Too many prepare writes have been queueud |
0x040a | att_not_found | No attribute found within the given attribute handle |
range. | ||
0x040b | att_not_long | The attribute cannot be read or written using the Read |
Blob Request | ||
0x040c | insufficient_enc_key_size | The Encryption Key Size used for |
encrypting this link is insufficient. | ||
0x040d | invalid_att_length | The attribute value length is invalid for the |
operation | ||
0x040e | unlikely_error | The attribute request that was requested has |
encountered an error that was unlikely, and therefore could not be completed | ||
as requested. | ||
0x040f | insufficient_encryption | The attribute requires encryption before it |
can be read or written. | ||
0x0410 | unsupported_group_type | The attribute type is not a supported |
grouping attribute as defined by a higher layer specification. | ||
0x0411 | insufficient_resources | Insufficient Resources to complete the |
request | ||
0x0412 | out_of_sync | The server requests the client to rediscover the |
database. | ||
0x0413 | value_not_allowed | The attribute parameter value was not allowed. |
0x0480 | application | Start of ATT application error codes range defined by a |
higher layer specification. |
Bluetooth Mesh errors#
Code | Name | Description |
---|---|---|
0x0c01 | already_exists | Returned when trying to add a key or some other |
unique resource with an ID which already exists | ||
0x0c02 | does_not_exist | Returned when trying to manipulate a key or some |
other resource with an ID which does not exist | ||
0x0c03 | limit_reached | Returned when an operation cannot be executed because |
a pre-configured limit for keys, key bindings, elements, models, virtual | ||
addresses, provisioned devices, or provisioning sessions is reached | ||
0x0c04 | invalid_address | Returned when trying to use a reserved address or |
add a "pre-provisioned" device using an address already used by some other | ||
device | ||
0x0c05 | malformed_data | In a BGAPI response, the user supplied malformed |
data; in a BGAPI event, the remote end responded with malformed or | ||
unrecognized data | ||
0x0c06 | already_initialized | An attempt was made to initialize a subsystem |
that was already initialized. | ||
0x0c07 | not_initialized | An attempt was made to use a subsystem that wasn't |
initialized yet. Call the subsystem's init function first. | ||
0x0c08 | no_friend_offer | Returned when trying to establish a friendship as a |
Low Power Node, but no acceptable friend offer message was received. | ||
0x0c09 | prov_link_closed | Provisioning link was unexpectedly closed before |
provisioning was complete. | ||
0x0c0a | prov_invalid_pdu | An unrecognized provisioning PDU was received. |
0x0c0b | prov_invalid_pdu_format | A provisioning PDU with wrong length or |
containing field values that are out of bounds was received. | ||
0x0c0c | prov_unexpected_pdu | An unexpected (out of sequence) provisioning |
PDU was received. | ||
0x0c0d | prov_confirmation_failed | The computed confirmation value did not |
match the expected value. | ||
0x0c0e | prov_out_of_resources | Provisioning could not be continued due to |
insufficient resources. | ||
0x0c0f | prov_decryption_failed | The provisioning data block could not be |
decrypted. | ||
0x0c10 | prov_unexpected_error | An unexpected error happened during |
provisioning. | ||
0x0c11 | prov_cannot_assign_addr | Device could not assign unicast addresses |
to all of its elements. | ||
0x0c12 | address_temporarily_unavailable | Returned when trying to reuse an |
address of a previously deleted device before an IV Index Update has been | ||
executed. | ||
0x0c13 | address_already_used | Returned when trying to assign an address that |
is used by one of the devices in the Device Database, or by the Provisioner | ||
itself. | ||
0x0c14 | no_data_available | Returned when no data is available for reading. |
Bluetooth Mesh foundation errors#
Code | Name | Description |
---|---|---|
0x0e01 | invalid_address | Returned when address in request was not valid |
0x0e02 | invalid_model | Returned when model identified is not found for a |
given element | ||
0x0e03 | invalid_app_key | Returned when the key identified by AppKeyIndex is |
not stored in the node | ||
0x0e04 | invalid_net_key | Returned when the key identified by NetKeyIndex is |
not stored in the node | ||
0x0e05 | insufficient_resources | Returned when The node cannot serve the |
request due to insufficient resources | ||
0x0e06 | key_index_exists | Returned when the key identified is already stored |
in the node and the new NetKey value is different | ||
0x0e07 | invalid_publish_params | Returned when the model does not support the |
publish mechanism | ||
0x0e08 | not_subscribe_model | Returned when the model does not support the |
subscribe mechanism | ||
0x0e09 | storage_failure | Returned when storing of the requested parameters |
failed | ||
0x0e0a | not_supported | Returned when requested setting is not supported |
0x0e0b | cannot_update | Returned when the requested update operation cannot |
be performed due to general constraints | ||
0x0e0c | cannot_remove | Returned when the requested delete operation cannot |
be performed due to general constraints | ||
0x0e0d | cannot_bind | Returned when the requested bind operation cannot be |
performed due to general constraints | ||
0x0e0e | temporarily_unable | Returned when The node cannot start advertising |
with Node Identity or Proxy since the maximum number of parallel advertising | ||
is reached | ||
0x0e0f | cannot_set | Returned when the requested state cannot be set |
0x0e10 | unspecified | Returned when an unspecified error took place |
0x0e11 | invalid_binding | Returned when the NetKeyIndex and AppKeyIndex |
combination is not valid for a Config AppKey Update |
Filesystem errors#
Code | Name | Description |
---|---|---|
0x0901 | file_not_found | File not found |
Errors from Logical Link Control and Adaptation Protocol#
Code | Name | Description |
---|---|---|
0x0d01 | remote_disconnected | Returned when remote disconnects the |
connection-oriented channel by sending disconnection request. | ||
0x0d02 | local_disconnected | Returned when local host disconnect the |
connection-oriented channel by sending disconnection request. | ||
0x0d03 | cid_not_exist | Returned when local host did not find a connection- |
oriented channel with given destination CID. | ||
0x0d04 | le_disconnected | Returned when connection-oriented channel |
disconnected due to LE connection is dropped. | ||
0x0d05 | flow_control_violated | Returned when connection-oriented channel |
disconnected due to remote end send data even without credit. | ||
0x0d06 | flow_control_credit_overflowed | Returned when connection-oriented |
channel disconnected due to remote end send flow control credits exceed 65535. | ||
0x0d07 | no_flow_control_credit | Returned when connection-oriented channel |
has run out of flow control credit and local application still trying to send | ||
data. | ||
0x0d08 | connection_request_timeout | Returned when connection-oriented |
channel has not received connection response message within maximum timeout. | ||
0x0d09 | invalid_cid | Returned when local host received a connection-oriented |
channel connection response with an invalid destination CID. | ||
0x0d0a | wrong_state | Returned when local host application tries to send a |
command which is not suitable for L2CAP channel's current state. |
Security errors#
Code | Name | Description |
---|---|---|
0x0b01 | image_signature_verification_failed | Device firmware signature |
verification failed. | ||
0x0b02 | file_signature_verification_failed | File signature verification |
failed. | ||
0x0b03 | image_checksum_error | Device firmware checksum is not valid. |