We have an odd case where we are able to connect, properly discover a custom service and its characteristics, and initiate communication, but the next connect attempt times out on service discovery. I have sniffed the communications and I see on the incomplete session that the master (central) does the write request for handle 0x000b (which I believe is the Client Characteristic Configuration descriptor), then gets a write response, then nothing. In the working session, the write request on 0x000b is followed by a read by type request for 0x000c...0x003c, which is the range of handles for the custom characteristics.
Does this ring any bells for anyone that discovery would stop at 0x000b like this?
Sniff log is attached (remove .txt extension to view in Wireshark).
it ends up essentially hung on CYBLE_EVT_GATTS_INDICATION_ENABLED with attribute handle 0x000b and payload value 0200, which suggests indication has started. But it never gets as far as CYBLE_EVT_GATTS_WRITE_REQ.