From 39c5cffaa13420f0cf0ec90bef6b32628582f614 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 23 Feb 2026 09:32:55 -0600 Subject: [PATCH] [esp32_ble_client] Reset conn_id on failed OPEN_EVT to prevent stale match When OPEN_EVT arrives with a failure status, the connection was never established so no CLOSE_EVT may follow. Reset conn_id_ to prevent a stale value from matching a future CLOSE_EVT. --- esphome/components/esp32_ble_client/ble_client_base.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/esphome/components/esp32_ble_client/ble_client_base.cpp b/esphome/components/esp32_ble_client/ble_client_base.cpp index 026d55e1c6..6bf0a87b1e 100644 --- a/esphome/components/esp32_ble_client/ble_client_base.cpp +++ b/esphome/components/esp32_ble_client/ble_client_base.cpp @@ -311,6 +311,7 @@ bool BLEClientBase::gattc_event_handler(esp_gattc_cb_event_t event, esp_gatt_if_ if (param->open.status != ESP_GATT_OK && param->open.status != ESP_GATT_ALREADY_OPEN) { this->log_gattc_warning_("Connection open", param->open.status); this->set_state(espbt::ClientState::IDLE); + this->conn_id_ = UNSET_CONN_ID; break; } if (this->want_disconnect_) {