ESPHome 2026.10.1 fixes ESP32 Hosted OTA watchdogs and missed MQTT fan states

ESPHome 2026.10.1 fixes an ESP32 Hosted OTA watchdog issue, retries failed MQTT fan-state publishes and corrects several ESP32 build and runtime edge cases.

ESPHome has released 2026.10.1, a stable patch published on 27 October 2026. It fixes a task-watchdog failure in the ESP32AliExpress price Hosted coprocessor OTA path, makes an MQTT fan state publish retry properly after a connection burst, and tidies several ESP32AliExpress price build and runtime edge cases. This updates ESPHome and the firmware it generates; it is not a Home Assistant Core or Home Assistant OS release.

Quick summary

  • ESP32AliExpress price Hosted OTA finalisation now gets a 60-second watchdog guard while the coprocessor validates its image.
  • MQTT fan devices now report a failed first state publish, allowing ESPHome’s existing resend logic to try again.
  • The patch also addresses ESP32-P4 LEDC reset handling, noisy BLE GAP key-event warnings and several code-generation and build issues.
Close-up of a blue and orange printed circuit board, illustrating ESPHome firmware development
Illustrative circuit-board image; it does not depict the ESPHome 2026.10.1 software release or a specific ESP32 device. Photo by Umberto on Unsplash, free to use under the Unsplash Licence.

ESP32 Hosted OTA finalisation gets watchdog protection

Most ESP32 users will never encounter this path. The change concerns the esp32_hosted update component, used when an ESP32-class host updates an ESP32 coprocessor. The merged fix describes an M5Stack Tab5 with an ESP32-P4 host and an ESP32-C6 connected over SDIO.

After the image was downloaded and its SHA-256 verified, the coprocessor’s esp_ota_end() validation could take longer than the host’s default five-second task-watchdog window. The host then reset and the coprocessor came back with its old firmware. ESPHome 2026.10.1 keeps the existing 60-second watchdog guard active around every esp_hosted_slave_ota_end() call, covering both the normal completion path and abort paths.

The scope is deliberately narrow: it does not change ordinary ESP32 OTA updates or make every failed update recoverable. The pull request also records a remaining boundary — the ESP-Hosted response timeout for the end RPC is still five seconds. If validation itself outlasts that response window, the update may fail with “Failed to end OTA” rather than rebooting the host.

MQTT fan state no longer falls through the reconnect gap

The MQTT fan fix is smaller but likely to be more visible. Before this patch, MQTTFanComponent ignored the result of its main retained state publish after connecting. If that publish failed in the initial burst of MQTT traffic, ESPHome treated it as successful and did not engage its existing resend schedule. The broker could therefore remain without the fan’s retained state until the entity changed.

Version 2026.10.1 returns a failure when that first state publish fails, so the normal retry logic can send it again. The issue was reproduced on an ESP8266 D1 mini with 20-plus entities, but the correction is in the common MQTT fan component. It does not change MQTT quality-of-service settings or guarantee broker delivery; it fixes this specific initial-state reporting gap.

More ESP32 fixes in the patch

  • LEDC reset on newer targets: ESPHome now uses the HAL reset path on chips without the legacy peripheral API. The change specifically addresses an ESP32-P4 build where the old ESP-IDF call was deprecated and did nothing, leaving stale LEDC state after a crash reboot.
  • Bluetooth Proxy log noise: ESP32 BLE now explicitly ignores the known ESP_GAP_BLE_KEY_EVT event instead of warning about unexpected event type 9. The report counted 1,413 warnings in roughly 13 hours on a Bluetooth Proxy. The contributor compiled the change successfully but noted that hardware runtime behaviour was not validated, so this should be read as a logging fix rather than proof of changed pairing or encryption behaviour.
  • Core and build edge cases: the release generates valid C++ for infinite floating-point values, avoids division by zero in Color::random_color(), resolves versionless library dependencies in the same style as PlatformIO, preserves runtime HTTP manifest URLs and disables precompiled headers with ccache older than 4.7.

Who should update?

ESPHome 2026.10.1 is a stable patch, not a beta. Users of ESP32 Hosted coprocessor updates, MQTT-controlled fans, ESP32-P4 LEDC output or Bluetooth Proxy nodes producing the GAP warning have the clearest reason to move promptly. For production devices, validate the configuration and retain a known-good firmware image before rolling the update across every node.

This patch follows the larger ESPHome 2026.10.0 release with compressed OTA and native ESP8266 builds. The MQTT fan-state issue is also separate from the long-topic MQTT crash and web disconnect corrections covered in our 2026.10 beta 5 report.

Sources

CONTINUE EXPLORING / SMART HOME & ESPHOME

Read next

Practical guides related to this article.

Explore the topic →
HARDWARE DECISION GUIDEChoosing Home Assistant hardware?

Compare practical options before you choose hardware.

Compare options →