We have a application where data transfers happen through a mechanism where the external client does a write-without-response to send in a command. The response to the command is sent out in a series of notifications. This normally all works correctly.
We are doing a test where where we connect and configure the CCC and just before writing the command, we do a data length update to 27 bytes (previously 247). The MTU is still at 247. I write the response data using sd_ble_gatts_hvx which is 89 bytes. The SD reports success. This should be split into 4 LL layer packets of up to 27 bytes. Instead we get several packets that contain LENGTH_ERROR (See trace screen shot). The sodera is reporting "Length in header too big for packet type".
The notification never comes through and the SD never reports the BLE_GATTS_EVT_HVN_TX_COMPLETE event. Ive checked that the ble_gatts_hvx_params_t structure and length variable stay in scope and are not being overwritten.
We are using SD S140 v6.1.1 and SDK 15.3