bluetooth
Bluetooth HCI Error Codes
Error codes returned by the Bluetooth Host Controller Interface (HCI), as defined in the Bluetooth Core Specification, Volume 1, Part F. Each code is a single byte value (0x00–0xFF) included in HCI events to indicate the outcome of a command or the reason for a disconnection or failure.
69 codes
· All codes 69 codes
- ACL_CONNECTION_ALREADY_EXISTS ACL Connection Already Exists An ACL connection to the remote device already exists. A second simultaneous ACL connection is not permitted.
- ADVERTISING_TIMEOUT Advertising Timeout Directed advertising or high duty cycle advertising completed without a connection being established within the timeout period.
- AUTHENTICATION_FAILURE Authentication Failure Pairing or authentication failed due to incorrect credentials or a failed cryptographic exchange.
- CHANNEL_ASSESSMENT_NOT_SUPPORTED Channel Classification Not Supported The controller does not support the channel classification scheme required by the host command.
- COARSE_CLOCK_ADJUSTMENT_REJECTED Coarse Clock Adjustment Rejected but Will Try to Adjust Using Clock Dragging The requested coarse clock adjustment was rejected. The controller will attempt to achieve the required adjustment using clock dragging instead.
- COMMAND_DISALLOWED Command Disallowed The requested HCI command cannot be executed at this time due to the current state of the controller.
- CONNECTION_ACCEPT_TIMEOUT_EXCEEDED Connection Accept Timeout Exceeded The host did not accept or reject an incoming connection request before the connection accept timeout expired.
- CONNECTION_FAILED_TO_BE_ESTABLISHED Connection Failed to be Established / Synchronisation Timeout A connection or synchronisation could not be established within the required time. Used for both BR/EDR connection attempts and BIS/CIS synchronisation failures.
- CONNECTION_LIMIT_EXCEEDED Connection Limit Exceeded The maximum number of connections that the controller supports has been reached. No new connections can be established.
- CONNECTION_REJECTED_LIMITED_RESOURCES Connection Rejected due to Limited Resources An incoming connection request was rejected because the device lacks the resources to accept it at this time.
- CONNECTION_REJECTED_NO_SUITABLE_CHANNEL Connection Rejected due to No Suitable Channel Found The controller could not find a suitable channel to establish the connection because all available channels are classified as bad.
- CONNECTION_REJECTED_SECURITY Connection Rejected due to Security Reasons An incoming connection request was rejected because it did not satisfy the device's security requirements.
- CONNECTION_REJECTED_UNACCEPTABLE_BD_ADDR Connection Rejected due to Unacceptable BD_ADDR An incoming connection request was rejected because the BD_ADDR of the remote device is not acceptable.
- CONNECTION_TERMINATED_BY_LOCAL_HOST Connection Terminated by Local Host The local host terminated the connection by issuing a Disconnect command.
- CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE Connection Terminated due to MIC Failure The connection was terminated because a Message Integrity Check (MIC) verification failed, indicating a possible security breach or transmission error.
- CONNECTION_TIMEOUT Connection Timeout The link supervision timeout expired, indicating that the connection to the remote device was lost.
- CONTROLLER_BUSY Controller Busy The controller is busy with another procedure and cannot execute the requested command. The host should retry later.
- DIFFERENT_TRANSACTION_COLLISION Different Transaction Collision An LMP or LL PDU was received that conflicts with a transaction currently being initiated by the host.
- ENCRYPTION_MODE_NOT_ACCEPTABLE Encryption Mode Not Acceptable The requested encryption mode is not acceptable. The remote device requires a different encryption mode than the one proposed.
- EXTENDED_INQUIRY_RESPONSE_TOO_LARGE Extended Inquiry Response Too Large The extended inquiry response data provided by the host is larger than the maximum 240 bytes permitted.
- HARDWARE_FAILURE Hardware Failure A hardware failure has occurred in the controller. The failure is unrelated to the host command.
- HOST_BUSY_PAIRING Host Busy - Pairing The host is busy with another pairing operation and cannot accept a new pairing request at this time.
- INSTANT_PASSED Instant Passed The instant specified in an LMP or LL PDU for a channel map change or connection update has already passed, so the change cannot be applied.
- INSUFFICIENT_SECURITY Insufficient Security The operation cannot proceed because the current security level is insufficient. A higher security level is required.
- INVALID_HCI_COMMAND_PARAMETERS Invalid HCI Command Parameters The host issued an HCI command with one or more parameters that are outside the permitted range or are otherwise invalid.
- INVALID_LMP_PARAMETERS Invalid LMP Parameters / Invalid LL Parameters An LMP or LL PDU was received with one or more parameter values that are invalid or outside the permitted range.
- LIMIT_REACHED Limit Reached The operation has reached a limit defined by the specification, such as the maximum number of advertising sets or periodic sync handles.
- LINK_KEY_CANNOT_BE_CHANGED Link Key Cannot be Changed The link key cannot be changed because the remote device does not support the Change Connection Link Key command.
- LMP_ERROR_TRANSACTION_COLLISION LMP Error Transaction Collision / LL Procedure Collision An LMP or LL transaction collided with an ongoing transaction initiated by the remote device, making it impossible to complete.
- LMP_PDU_NOT_ALLOWED LMP PDU Not Allowed An LMP PDU was received that is not allowed in the current link state.
- LMP_RESPONSE_TIMEOUT LMP Response Timeout / LL Response Timeout An LMP or LL transaction failed to respond within the LMP response timeout interval.
- MAC_CONNECTION_FAILED MAC Connection Failed A MAC (Medium Access Control) level connection failed to be established.
- MEMORY_CAPACITY_EXCEEDED Memory Capacity Exceeded The controller has insufficient memory to complete the requested operation. Resources are exhausted.
- OPERATION_CANCELLED_BY_HOST Operation Cancelled by Host An operation was cancelled because the host issued a command that cancelled it before it could complete.
- PACKET_TOO_LONG Packet Too Long A packet was received or is to be transmitted that exceeds the maximum allowed length for the current connection configuration.
- PAGE_TIMEOUT Page Timeout A page (connection establishment) timed out because the remote device did not respond within the page timeout interval.
- PAIRING_NOT_ALLOWED Pairing Not Allowed The host has requested pairing, but pairing is not permitted. This can occur when the device is in a state that prohibits pairing.
- PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED Pairing with Unit Key Not Supported The remote device does not support pairing using a unit key, which is considered insecure in modern implementations.
- PARAMETER_OUT_OF_MANDATORY_RANGE Parameter Out Of Mandatory Range A parameter value is outside the mandatory range defined by the specification, and the implementation cannot accept it.
- PIN_OR_KEY_MISSING PIN or Key Missing Pairing failed because the PIN code or link key is missing. The device lacks the necessary credentials to authenticate.
- QOS_REJECTED QoS Rejected The remote device rejected the QoS parameters provided by the host because it cannot accept them.
- QOS_UNACCEPTABLE_PARAMETER QoS Unacceptable Parameter The host or remote device has rejected the Quality of Service parameters because they fall outside the acceptable range.
- REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES Remote Device Terminated Connection due to Low Resources The remote device terminated the connection because it had insufficient resources to maintain it.
- REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF Remote Device Terminated Connection due to Power Off The remote device terminated the connection because it is about to power off.
- REMOTE_USER_TERMINATED_CONNECTION Remote User Terminated Connection The remote device terminated the connection because the remote user requested it.
- REPEATED_ATTEMPTS Repeated Attempts The controller has received repeated pairing or authentication attempts, and pairing is not allowed at this time to prevent brute-force attacks.
- REQUESTED_QOS_NOT_SUPPORTED Requested QoS Not Supported The requested Quality of Service (QoS) parameters are not supported by the remote device or controller.
- RESERVED_SLOT_VIOLATION Reserved Slot Violation An attempt was made to use a reserved slot in a way that violates the Bluetooth specification.
- ROLE_CHANGE_NOT_ALLOWED Role Change Not Allowed A role switch was requested, but the remote device does not allow it in the current context.
- ROLE_SWITCH_FAILED Role Switch Failed A role switch between master and slave failed. The connection remains, but the role did not change.
- ROLE_SWITCH_PENDING Role Switch Pending A role switch is already in progress. The requested command cannot be performed until the role switch completes.
- SCO_AIR_MODE_REJECTED SCO Air Mode Rejected The remote device rejected the air coding format requested during SCO connection negotiation.
- SCO_INTERVAL_REJECTED SCO Interval Rejected The remote device rejected the SCO interval requested during SCO connection negotiation.
- SCO_OFFSET_REJECTED SCO Offset Rejected The remote device rejected the SCO offset requested during SCO connection negotiation.
- SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST Secure Simple Pairing Not Supported by Host The remote device supports Secure Simple Pairing, but the local host does not support it and cannot complete pairing.
- SUCCESS Success The operation completed successfully. No error occurred.
- SYNCHRONOUS_CONNECTION_LIMIT_EXCEEDED Synchronous Connection Limit to a Device Exceeded The maximum number of synchronous (SCO or eSCO) connections to a single remote device has been reached.
- TOO_EARLY Too Early The requested operation cannot be performed yet because it is too early relative to the current state or timing constraints.
- TOO_LATE Too Late The requested operation could not be performed in time. The controller was unable to meet the timing constraint required.
- TYPE0_SUBMAP_NOT_DEFINED Type0 Submap Not Defined The Type 0 submap is not defined, so the Channel Classification command cannot be used.
- UNACCEPTABLE_CONNECTION_PARAMETERS Unacceptable Connection Parameters The remote device rejected the connection parameters or connection update parameters as unacceptable.
- UNKNOWN_ADVERTISING_IDENTIFIER Unknown Advertising Identifier The advertising handle specified in the command does not correspond to an existing advertising set.
- UNKNOWN_CONNECTION_IDENTIFIER Unknown Connection Identifier The connection handle or synchronisation handle supplied in the command does not correspond to a known connection.
- UNKNOWN_HCI_COMMAND Unknown HCI Command The controller does not understand the HCI command sent from the host. The opcode is unknown or unsupported.
- UNKNOWN_LMP_PDU Unknown LMP PDU An LMP (Link Manager Protocol) PDU was received with an unknown or unsupported opcode.
- UNSPECIFIED_ERROR Unspecified Error An error occurred for which no other error code is appropriate. The cause is unspecified.
- UNSUPPORTED_FEATURE_OR_PARAMETER Unsupported Feature or Parameter Value A command was issued with a parameter value or feature that is not supported by the controller.
- UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE Unsupported LMP Parameter Value / Unsupported LL Parameter Value An LMP or LL PDU was received with a parameter value that is not supported at this time. Unlike code 0x1E, the parameter value itself is valid but not supported by the implementation.
- UNSUPPORTED_REMOTE_FEATURE Unsupported Remote Feature / Unsupported LMP Feature The remote device does not support the feature or LMP feature required to complete the requested operation.