diff --git a/src/NimBLEDevice.cpp b/src/NimBLEDevice.cpp index d698d9cc..e125aeb9 100644 --- a/src/NimBLEDevice.cpp +++ b/src/NimBLEDevice.cpp @@ -1029,14 +1029,13 @@ bool NimBLEDevice::init(const std::string& deviceName) { bool NimBLEDevice::deinit(bool clearAll) { int rc = 0; if (m_initialized) { -# if MYNEWT_VAL(BLE_ROLE_OBSERVER) - if (NimBLEDevice::m_pScan != nullptr) { - NimBLEDevice::m_pScan->onHostDeinit(); - } -# endif - rc = nimble_port_stop(); if (rc == 0) { +# if MYNEWT_VAL(BLE_ROLE_OBSERVER) + if (NimBLEDevice::m_pScan != nullptr) { + NimBLEDevice::m_pScan->onHostDeinit(); + } +# endif nimble_port_deinit(); # ifndef USING_NIMBLE_ARDUINO_HEADERS # if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0) @@ -1048,6 +1047,9 @@ bool NimBLEDevice::deinit(bool clearAll) { # endif m_initialized = false; m_synced = false; + } else { + NIMBLE_LOGE(LOG_TAG, "nimble_port_stop() failed with error: %d", rc); + return false; } }