RF Wireless World

Browse articles, tutorials, tools, and vendors.

Bluetooth Error Codes: Meanings, Causes & Fixes

By RF Wireless Expert Team

Based on the provided Bluetooth Core Specification document, the table below mentions Controller Error Codes (which apply to BLE as well as BR/EDR), including their hexadecimal values, names and descriptions.

Error CodeNameDescription
0x00SuccessIndicates that the command or operation was successful.
0x01Unknown HCI CommandIndicates that the Controller does not understand the HCI Command packet opcode that the Host sent.
0x02Unknown Connection IdentifierIndicates that a command was sent from the Host that should identify a connection, but that connection does not exist or does not identify the correct type of connection.
0x03Hardware FailureIndicates to the Host that something in the Controller has failed in a manner that cannot be described with any other error code.
0x04Page TimeoutIndicates that a page timed out because of the Page Timeout configuration parameter.
0x05Authentication FailureIndicates that pairing or authentication failed due to incorrect results in the pairing or authentication procedure (e.g., incorrect PIN or Link Key).
0x06PIN or Key MissingUsed when pairing failed because of a missing PIN, or authentication failed because of a missing Key.
0x07Memory Capacity ExceededIndicates to the Host that the Controller has run out of memory to store new parameters.
0x08Connection TimeoutIndicates that either the link supervision timeout has expired for a given connection or that the synchronization timeout has expired for a given broadcast.
0x09Connection Limit ExceededIndicates that an attempt to create another connection failed because the Controller is already at its limit of the number of connections it can support.
0x0ASynchronous Connection Limit to a Device ExceededIndicates that the Controller has reached the limit to the number of synchronous connections that can be achieved to a device.
0x0BConnection Already ExistsIndicates that an attempt was made to create a new Connection to a device when there is already a connection to this device and multiple connections to the same device are not permitted.
0x0CCommand DisallowedIndicates that the command requested cannot be executed because the Controller is in a state where it cannot process this command at this time.
0x0DRejected due to Limited ResourcesIndicates that a connection or other request was rejected due to limited resources.
0x0ERejected due to Security ReasonsIndicates that a connection or other request was rejected due to security requirements not being fulfilled, like authentication or pairing.
0x0FRejected due to Unacceptable BD_ADDRIndicates that a connection or other request was rejected because this device does not accept the BD_ADDR.
0x10Connection Accept Timeout ExceededIndicates that the Connection Accept Timeout has been exceeded for this connection attempt.
0x11Unsupported Feature or Parameter ValueIndicates that a feature or parameter value in the HCI command is not supported.
0x12Invalid HCI Command ParametersIndicates that at least one of the HCI command parameters is invalid (e.g., out of range, missing, or invalid length).
0x13Remote User Terminated ConnectionIndicates that the user on the remote device either terminated the connection or stopped broadcasting packets.
0x14Remote Device Terminated Connection due to Low ResourcesIndicates that the remote device terminated the connection because of low resources.
0x15Remote Device Terminated Connection due to Power OffIndicates that the remote device terminated the connection because the device is about to power off.
0x16Connection Terminated by Local HostIndicates that either the local device terminated the connection, terminated synchronization with a broadcaster, or terminated broadcasting packets.
0x17Repeated AttemptsIndicates that the Controller is disallowing an authentication or pairing procedure because too little time has elapsed since the last authentication or pairing attempt failed.
0x18Pairing Not AllowedIndicates that the device does not allow pairing (e.g., outside of a certain time window after user input).
0x19Unknown LMP PDUIndicates that the Controller has received an unknown LMP opcode.
0x1AUnsupported Remote FeatureIndicates that the remote device does not support the feature associated with the issued command, LMP PDU, or Link Layer Control PDU.
0x1BSCO Offset RejectedIndicates that the offset requested in the LMP_SCO_LINK_REQ PDU has been rejected.
0x1CSCO Interval RejectedIndicates that the interval requested in the LMP_SCO_LINK_REQ PDU has been rejected.
0x1DSCO Air Mode RejectedIndicates that the air mode requested in the LMP_SCO_LINK_REQ PDU has been rejected.
0x1EInvalid LMP Parameters / Invalid LL ParametersIndicates that some LMP PDU / LL Control PDU parameters were invalid.
0x1FUnspecified ErrorIndicates that no other error code specified is appropriate to use.
0x20Unsupported LMP Parameter Value / Unsupported LL Parameter ValueIndicates that an LMP PDU or an LL Control PDU contains at least one parameter value that is not supported by the Controller at this time.
0x21Role Change Not AllowedIndicates that a Controller will not allow a role change at this time.
0x22LMP Response Timeout / LL Response TimeoutIndicates that an LMP transaction failed to respond within the LMP response timeout or an LL transaction failed to respond within the LL response timeout.
0x23LMP Error Transaction Collision / LL Procedure CollisionIndicates that an LMP transaction or LL procedure has collided with the same transaction or procedure that is already in progress.
0x24LMP PDU Not AllowedIndicates that a Controller sent an LMP PDU with an opcode that was not allowed.
0x25Encryption Mode Not AcceptableIndicates that the requested encryption mode is not acceptable at this time.
0x26Link Key cannot be ChangedIndicates that a link key cannot be changed because a fixed unit key is being used.
0x27Requested QoS Not SupportedIndicates that the requested Quality of Service is not supported.
0x28Instant PassedIndicates that an LMP PDU or LL PDU that includes an instant cannot be performed because the instant when this would have occurred has passed.
0x29Pairing with Unit Key Not SupportedIndicates that it was not possible to pair as a unit key was requested and it is not supported.
0x2ADifferent Transaction CollisionIndicates that an LMP transaction or LL Procedure was started that collides with an ongoing transaction.
0x2BReserved for future useReserved for future use.
0x2CQoS Unacceptable ParameterIndicates that the specified quality of service parameters could not be accepted at this time, but other parameters may be acceptable.
0x2DQoS RejectedIndicates that the specified quality of service parameters cannot be accepted and QoS negotiation should be terminated.
0x2EChannel Assessment Not SupportedIndicates that the Controller cannot perform channel assessment because it is not supported.
0x2FInsufficient SecurityIndicates that the HCI command or LMP PDU sent is only possible on an encrypted link.
0x30Parameter Out of Mandatory RangeIndicates that a parameter value requested is outside the mandatory range of parameters for the given HCI command or LMP PDU and the recipient does not accept that value.
0x31Reserved for future useReserved for future use.
0x32Role Switch PendingIndicates that a Role Switch is pending.
0x33Reserved for future useReserved for future use.
0x34Reserved Slot ViolationIndicates that the current Synchronous negotiation was terminated with the negotiation state set to Reserved Slot Violation.
0x35Role Switch FailedIndicates that a role switch was attempted but it failed and the original piconet structure is restored.
0x36Extended Inquiry Response Too LargeIndicates that the extended inquiry response, with the requested requirements for FEC, is too large to fit in any of the packet types supported by the Controller.
0x37Secure Simple Pairing Not Supported by HostIndicates that the IO capabilities request or response was rejected because the sending Host does not support Secure Simple Pairing.
0x38Host Busy - PairingIndicates that the Host is busy with another pairing operation and unable to support the requested pairing.
0x39Rejected due to No Suitable Channel FoundIndicates that the Controller could not calculate an appropriate value for the Channel selection operation.
0x3AController BusyIndicates that the operation was rejected because the Controller was busy and unable to process the request.
0x3BUnacceptable Connection ParametersIndicates that the remote device either terminated the connection or rejected a request because of one or more unacceptable connection parameters.
0x3CAdvertising TimeoutIndicates that advertising for a fixed duration completed or, for directed advertising, that advertising completed without a connection being created.
0x3DConnection Terminated due to MIC FailureIndicates that either the connection or the synchronization was terminated because the Message Integrity Check (MIC) failed on a received packet.
0x3EConnection Failed to be Established / Synchronization TimeoutIndicates that the LL initiated a connection or initiated synchronization but the connection has failed to be established or the Link Layer failed to synchronize within the specified time.
0x3FPreviously usedPreviously used. (Deprecated/Reserved)
0x40Coarse Clock Adjustment Rejected but Will Try to Adjust Using Clock DraggingIndicates that the Central, at this time, is unable to make a coarse adjustment to the piconet clock using the supplied parameters, and will attempt to move the clock using clock dragging instead.
0x41Type0 Submap Not DefinedIndicates that the LMP PDU is rejected because the Type 0 submap is not currently defined.
0x42Unknown Advertising IdentifierIndicates that a command was sent from the Host that should identify an Advertising or Sync handle, but the Advertising or Sync handle does not exist.
0x43Limit ReachedIndicates that the number of operations requested has been reached and has indicated the completion of the activity (e.g., advertising or scanning).
0x44Operation Cancelled by HostIndicates a request to the Controller issued by the Host and still pending was successfully canceled.
0x45Packet Too LongIndicates that an attempt was made to send or receive a packet that exceeds the maximum allowed packet length.
0x46Too LateIndicates that information was provided too late to the Controller.
0x47Too EarlyIndicates that information was provided too early to the Controller.
0x48Insufficient ChannelsIndicates that the result of the requested operation would yield too few physical channels.
  • Reference : Bluetooth Core Specification, Version : 6.3, dated : 2026-05-05

References & Further Reading

  1. Bluetooth SIG : Bluetooth Core Specification Version 6.3, May 5, 2026.
  2. Bluetooth SIG : Bluetooth Technology Overview

Continue Learning Bluetooth Basic Concepts

Continue Learning Bluetooth Technology

Compare Bluetooth With Other Technologies

Keep Reading