I use nRF Connect to test buttonless DFU without bonds failed. But nRF52832 receives BLE_GATTS_EVT_SYS_ATTR_MISSING event.
->static void ble_evt_handler(ble_evt_t const* pBleEvt, void* pContext)
->{
-> ret_code_t errCode = NRF_SUCCESS;
->
-> switch (pBleEvt->header.evt_id)
-> {
-> case BLE_GAP_EVT_CONNECTED:
-> {
-> NRF_LOG_INFO("BLE_GAP_EVT_CONNECTED\n");
-> BLE_UART_SetState(BLE_NUS_STATE_CONNECT);
-> errCode = bsp_indication_set(BSP_INDICATE_CONNECTED);
-> if (errCode != NRF_SUCCESS) {
-> NRF_LOG_WARNING("bsp_indication_set() failed, errCode=0x%x\n", errCode);
-> return;
-> }
->
-> m_cur_conn_handle = pBleEvt->evt.gap_evt.conn_handle;
->
-> errCode = nrf_ble_qwr_conn_handle_assign(&m_qwr, m_cur_conn_handle);
-> if (errCode != NRF_SUCCESS) {
-> NRF_LOG_WARNING("nrf_ble_qwr_conn_handle_assign() failed, errCode=0x%x\n", errCode);
-> return;
-> }
-> }
-> break;
->
-> case BLE_GATTS_EVT_SYS_ATTR_MISSING:
-> {
-> NRF_LOG_INFO("BLE_GATTS_EVT_SYS_ATTR_MISSING\n");
-> // No system attributes have been stored.
-> errCode = sd_ble_gatts_sys_attr_set(pBleEvt->evt.gap_evt.conn_handle, NULL, 0, 0);
-> APP_ERROR_CHECK(errCode);
-> }
->...
->}
-> Code0> <debug> nrf_ble_gatt: Requesting to update ATT MTU to 185 bytes on connection 0x0.
0> <info> app: BLE_GAP_EVT_CONNECTED
0>
0> <debug> app: state=1
0>
0> <debug> nrf_ble_gatt: ATT MTU updated to 185 bytes on connection 0x0 (response).
0> <info> app: BLE_GATTS_EVT_SYS_ATTR_MISSING