I have a fairly simple application running on an nRF52832 exposing a few services over Bluetooth LE. I received a report of a Lenovo M10 (TB328FU) that was unable to connect. I imported one to test with and was able to reproduce the issue, even with the tablet fully patched. I haven't seen this issue with any other Android or iOS devices. As a (hopefully temporary) workaround, I disabled the 2 Mbps PHY which avoids the issue and the M10 can then connect and communicate successfully.
I found that the nRF is reporting an error when the M10 tries to change the PHY from 1 Mbps to 2 Mbps during the connection. Based on the error, I assume it is coming from the SoftDevice, but I'm new to this and don't understand exactly what is going on or what I may be able to adjust to resolve it.
Here's what appears to me to be the problematic packet in the sniffer (full sniffer pcap also attached of to M10 failing to connect). The Expert error is "Initiating a new incompatible control procedure after having sent a response to an incompatible control procedure"
In the nRF's log I see the following line right before disconnection:
bt_hci_core: hci_disconn_complete: status 0x00 handle 0 reason 0x2a
I'm not sure what reason 2a implies, but traced it to a name "BT_HCI_ERR_DIFF_TRANS_COLLISION".
Thanks for looking and I appreciate any guidance you can offer!