I have some D1 mini boards and OTA updates do not work - with the same boards they worked like a year ago, then I stopped using them and now after trying again and updating to the newest esphome version, I can only flash them via serial.
This are the logs:
$ esphome -v upload config/soil-1.yaml
INFO ESPHome 2026.2.4
INFO Reading configuration config/soil-1.yaml…
WARNING The minimum WiFi authentication mode (wifi → min_auth_mode) is not set. This controls the weakest encryption your device will accept when connecting to WiFi. Currently defaults to WPA (less secure), but will change to WPA2 (more secure) in 2026.6.0. WPA uses TKIP encryption which has known security vulnerabilities and should be avoided. WPA2 uses AES encryption which is significantly more secure. To silence this warning, explicitly set min_auth_mode under ‘wifi:’. If your router supports WPA2 or WPA3, set ‘min_auth_mode: WPA2’. If your router only supports WPA, set ‘min_auth_mode: WPA’.
Found multiple options for uploading, please choose one:
[1] /dev/ttyUSB0 (USB Serial)
[2] Over The Air (192.168.178.39)
(number): 2
INFO Connecting to 192.168.178.39 port 8266…
INFO Connected to 192.168.178.39
INFO Uploading /home/a/Projects/esphome/2026/config/.esphome/build/soil-1/.pioenvs/soil-1/firmware.bin (473296 bytes)
DEBUG Device support OTA version: 2
INFO Compressed to 334424 bytes
DEBUG Auth: SHA256 Nonce is 1739d905aa9cb9261ea0d5758b6244e40d5041b534bd9a1bc69623833bc4c5cd
DEBUG Auth: SHA256 CNonce is 94ee64eb95feae690f9d60d849256c69f9c0677cb6d91f58b6fff8cbd05671ff
DEBUG Auth: SHA256 Result is a64eced715bcf1f6e3aa4cfe3d636e71eb9c3f1f64e5a0f2c7138f2f662ddebc
DEBUG MD5 of upload is 9b22479fcd2a9e6815481c406b04e51b
ERROR Error receiving acknowledge chunk OK: timed out
WARNING Failed to upload to [‘192.168.178.39’]
[17:33:08.111][D][esphome.ota:451]: Starting handshake from 192.168.178.29
[17:33:08.114][V][esphome.ota:182]: Features: 0x03
[17:33:08.125][V][esphome.ota:589]: Auth: Nonce is 1739d905aa9cb9261ea0d5758b6244e40d5041b534bd9a1bc6962
3833bc4c5cd
[17:33:08.175][V][esphome.ota:649]: Auth: CNonce is 94ee64eb95feae690f9d60d849256c69f9c0677cb6d91f58b6ff
f8cbd05671ff
[17:33:08.186][V][esphome.ota:653]: Auth: Result is a64eced715bcf1f6e3aa4cfe3d636e71eb9c3f1f64e5a0f2c713
8f2f662ddebc
[17:33:08.194][V][esphome.ota:655]: Auth: Response is a64eced715bcf1f6e3aa4cfe3d636e71eb9c3f1f64e5a0f2c7
138f2f662ddebc
[17:33:08.200][V][esphome.ota:267]: Size is 334424 bytes
[17:33:08.205][D][esphome.ota:451]: Starting update from 192.168.178.29
[17:33:08.211][W][component:422]: esphome.ota set Warning flag: unspecified
[17:33:08.214]sleep disable
[17:33:08.219][D][ota.esp8266:120]: OTA begin: start=0x003A9000, size=334424
[17:33:08.228][V][esphome.ota:294]: Update: Binary MD5 is 9b22479fcd2a9e6815481c406b04e51b
search brought up some similar issues, but they are older and I tried the suggested fixes: setting static ip and using other board identifiers than “d1_mini”, but none of this worked, OTA updates will not finish.
Anyone got an idea what to try next?