Hello, I have trouble developing BLE devices with Nordic NRF5280 and SDK 15.3.
I use pm_local_database_has_changed() on the product to notify the bound device of a BLE service update,
But this function seems to cause BLE disconnection.
At first I thought it was caused by some conflict in the program,
So I tried to use the example on the dev kit nRF52840 DK and test it again with nRF Connect on the phone and I get the same result.
I'm using SDK 15.3 example ble_app_gatts
This is the debug log I got from the development board nRF52840 DK.
0> <info> main: main(): 0> <info> main: main(): ------------------------------------------------------------------------ 0> <info> main: main(): GATT Service server started 0> <info> main: on_whitelist_req(): Starting scan. 0> <warning> main: ble_evt_handler(): BLE Connect, conn_handle: 0x0. 0> <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption 0> <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption 0> <warning> main: bsp_event_handler(): BSP_EVENT_KEY_2 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_SENT 0> <warning> main: ble_evt_handler(): GATT Server Timeout. 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_CONFIRMED 0> <warning> main: ble_evt_handler(): BLE Disconnected. conn_handle: 0x0, reason: 0x16. 0> 0> 0> <info> main: on_whitelist_req(): Starting scan. 0> <warning> main: ble_evt_handler(): BLE Connect, conn_handle: 0x0. 0> <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption 0> <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption 0> <warning> main: bsp_event_handler(): BSP_EVENT_KEY_2 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_SENT 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_CONFIRMED 0> <warning> main: bsp_event_handler(): BSP_EVENT_KEY_2 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_SENT 0> <warning> main: ble_evt_handler(): GATT Server Timeout. 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_CONFIRMED 0> <warning> main: ble_evt_handler(): BLE Disconnected. conn_handle: 0x0, reason: 0x16. 0> 0> 0> <info> main: on_whitelist_req(): Starting scan. 0> <warning> main: ble_evt_handler(): BLE Connect, conn_handle: 0x0. 0> <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption 0> <info> peer_manager_handler: Connection secured: role: Central, conn_handle: 0, procedure: Encryption 0> <warning> main: bsp_event_handler(): BSP_EVENT_KEY_2 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_SENT 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_CONFIRMED 0> <warning> main: bsp_event_handler(): BSP_EVENT_KEY_2 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_SENT 0> <warning> main: ble_evt_handler(): GATT Server Timeout. 0> <warning> main: pm_evt_handler(): PM_EVT_SERVICE_CHANGED_IND_CONFIRMED 0> <warning> main: ble_evt_handler(): BLE Disconnected. conn_handle: 0x0, reason: 0x16. 0>
Every time I press Key2 at least 10 seconds,
It can be found that sometimes the PM_EVT_SERVICE_CHANGED_IND_CONFIRMED event is received after the Time out disconnection is triggered, and this time is about 30 seconds.
Please help me to solve the problem that pm_local_database_has_changed() will cause bluetooth disconnection.

