I hate to be the guy blindly pasting AI slop but I am very much out of my element here. I had codex watch the pairing process and here’s what it found:
• Captured. The failure is specific and repeatable:
- BLE connection succeeds.
- Service discovery succeeds.
- MTU 177 negotiates successfully.
- The app reaches SUBSCRIBING_TO_TELESTO_CTRL.
- It remains there with sent=0, recv=0.
- The ring disconnects about 9–10 seconds later with status 19 (REMOTE_USER_TERMINATED_CONNECTION), or the app times out and cancels locally.
Most suspiciously, the trace shows setCharacteristicNotification() for the Telesto control characteristic, but no successful CCCD descriptor-write callback. That subscription
handshake appears to be where compatibility breaks. This explains why the MediaTek HCI workaround did nothing—the radio and lower-level BLE connection already work.
Android connects successfully and completes GATT discovery, but Haversine LinkTransport stalls in SUBSCRIBING_TO_TELESTO_CTRL for characteristic c0ef558a-2058-fabf-a140-8d5acde50b39. No CCCD write completion is visible, no payload is exchanged, and the peripheral terminates with GATT status 19 after approximately ten seconds.
It generated a larger txt file with logs of the failure:
Jelly Star / Pebble Index 01 BLE failure excerpt
Captured: 2026-08-14 11:43-11:45 America/Denver
Android app: coredevices.coreapp 1.8.0.7 (3673)
Index BLE address: redacted (EA:2D:3D:xx:xx:xx)
Successful lower-level connection and discovery:
11:44:20.227 BluetoothGatt: onClientConnectionState status=0 newState=connected
11:44:20.234 BluetoothGatt: configureMTU mtu=177
11:44:20.239 HS-LinkTransport: enterLinkState DISCOVERING_SERVICES
11:44:20.249 BluetoothGatt: onSearchComplete Status=0
11:44:20.252 HS-LinkTransport: enterLinkState SUBSCRIBING_TO_TELESTO_CTRL
11:44:20.252 BluetoothGatt: setCharacteristicNotification uuid=c0ef558a-2058-fabf-a140-8d5acde50b39 enable=true
11:44:21.128 BluetoothGatt: onConfigureMTU mtu=177 status=0
11:44:21.327 BluetoothGatt: onConnectionUpdated interval=10 latency=0 timeout=125 status=0
The subscription never completes:
11:44:29.048 HS-a: LinkTransport state=SUBSCRIBING_TO_TELESTO_CTRL sent=0 recv=0
11:44:29.933 BluetoothGatt: onClientConnectionState status=19 newState=disconnected
11:44:29.956 HS-by4: HaversineException: Connection failure
Second attempt, same sequence:
11:44:32.795 BluetoothGatt: onClientConnectionState status=0 newState=connected
11:44:32.816 BluetoothGatt: onSearchComplete Status=0
11:44:32.821 HS-LinkTransport: enterLinkState SUBSCRIBING_TO_TELESTO_CTRL
11:44:39.051 HS-a: LinkTransport state=SUBSCRIBING_TO_TELESTO_CTRL sent=0 recv=0
11:44:42.556 BluetoothGatt: onClientConnectionState status=19 newState=disconnected
11:44:42.573 HS-by4: HaversineException: Connection failure
Third attempt was cancelled locally after the same stalled subscription:
11:44:51.808 BluetoothGatt: onClientConnectionState status=0 newState=connected
11:44:51.823 BluetoothGatt: onSearchComplete Status=0
11:44:51.825 HS-LinkTransport: enterLinkState SUBSCRIBING_TO_TELESTO_CTRL
11:45:01.511 BluetoothGatt: cancelOpen
11:45:01.517 BluetoothGatt: onClientConnectionState status=0 newState=disconnected
Other relevant stack warnings:
Bluetooth stack repeatedly logged:
Call back not found for application conn_id=3/4/5/7
disconnect no eatt device found
bta_gattc_mark_bg_conn unable to find the bg connection mask
Interpretation:
- BLE radio connection succeeds (status 0).
- Service discovery succeeds (status 0).
- MTU 177 and connection parameters are negotiated successfully.
- Failure is during subscription to the Telesto control characteristic.
- No application payload is sent or received before failure.
- Two attempts end with GATT status 19 / HCI reason 0x13 (remote user terminated connection).
- One attempt is cancelled locally by the app/library after approximately ten seconds.
It also generated a zip of a bunch of logs around the time of failure. It contains:
- Pebble app logs and state transitions
- Bluetooth service history and configuration
- Two compressed Bluetooth HCI “btsnooz” packet traces
- Wi-Fi, cellular, battery, process, package, permission, notification, and activity diagnostics
- Kernel, HAL, MediaTek vendor-service, and crash information
- A list of installed applications
- Build fingerprints and firmware versions
Let me know if you guys want that and I can figure out a way to upload it.