When bt_gatt_client receives 'indication' it sends 'confirmation'. 'confirmation' sending was broken after adding support for 'clones' of bt_gatt_client. In addition to first bt_gatt_client each clone also sends 'confirmation'. # > ACL Data RX: Handle 69 flags 0x02 dlen 27 # ATT: Handle Value Indication (0x1d) len 22 # Handle: 0x001f # Data: 68656c6c6f2027302e302e302e303a3532353332 # < ACL Data TX: Handle 69 flags 0x00 dlen 5 # ATT: Handle Value Confirmation (0x1e) len 0 # < ACL Data TX: Handle 69 flags 0x00 dlen 5 # ATT: Handle Value Confirmation (0x1e) len 0 Extra confirmation sent by clone confuses remote side. When bluetooth daemon receives extra confirmation it breaks connection. Attached patch fixes the issue limiting confirmation sending to single bt_gatt_client.