My ESP32 device running ESPHome is failing with a “Partition table failure” after flashing, entering into an infinite loop of boot failures.
My device is an ESP-WROOM-32 development board (https://www.aliexpress.com/item/1005005704190069.html#nav-specification).
I’m using esphome 2025.12.1 on macOS (though I’ve tried with multiple different esphome versions, on macOS and Linux).
I’ve tried to simplify to using a basic ESPHome configuration:
esphome:
name: sample
friendly_name: Sample
esp32:
variant: esp32
logger:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
Here is the output of esphome run:
INFO Successfully compiled program.
esptool v5.1.0
Connected to ESP32 on /dev/cu.usbserial-110:
Chip type: ESP32-D0WD-V3 (revision v3.1)
Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None
Crystal frequency: 40MHz
MAC: d8:13:2a:43:08:e4
Stub flasher running.
Changing baud rate to 460800...
Changed.
Configuring flash size...
Auto-detected flash size: 4MB
Flash will be erased from 0x00010000 to 0x000d1fff...
Flash will be erased from 0x00001000 to 0x00007fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Wrote 793648 bytes (524825 compressed) at 0x00010000 in 14.1 seconds (451.4 kbit/s).
Hash of data verified.
SHA digest in image updated.
Wrote 26240 bytes (16491 compressed) at 0x00001000 in 0.8 seconds (262.1 kbit/s).
Hash of data verified.
Wrote 3072 bytes (144 compressed) at 0x00008000 in 0.1 seconds (367.0 kbit/s).
Hash of data verified.
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (612.4 kbit/s).
Hash of data verified.
Hard resetting via RTS pin...
INFO Successfully uploaded program.
INFO Starting log output from /dev/cu.usbserial-110 with baud rate 115200
[11:24:32.624]32: SPI Flash Size : 4MB
[11:24:32.630]I (72) boot: Enabling RNG early entropy source...
[11:24:32.635]E (76) flash_parts: partition 0 invalid magic number 0x200
[11:24:32.638]E (82) boot: Failed to verify partition table
[11:24:32.645]E (86) boot: load partition table error!
[11:24:32.645]ets Jul 29 2019 12:21:46
[11:24:32.651]rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[11:24:32.653]configsip: 0, SPIWP:0xee
[11:24:32.659]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[11:24:32.662]mode:DIO, clock div:2
[11:24:32.664]load:0x3fff0030,len:6 380
[11:24:32.664]ho 0 tail 12 room 4
[11:24:32.667]load:0x40078000,len:15916
[11:24:32.670]load:0x40080400,len:3860
[11:24:32.672]entry 0x40080630
[11:24:32.678]I (56) boot: ESP-IDF 5.5.1 2nd stage bootloader
[11:24:32.684]I (56) boot: compile time Dec 21 2025 11:20:15
[11:24:32.686]I (56) boot: Multicore bootloader
[11:24:32.689]I (58) boot: chip revision: v3.1
[11:24:32.692]I (61) boot.esp32: SPI Speed : 40MHz
[11:24:32.695]I (65) boot.esp32: SPI Mode : DIO
[11:24:32.700]I (68) boot.esp32: SPI Flash Size : 4MB
[11:24:32.703]I (72) boot: Enabling RNG early entropy source...
[11:24:32.709]E (76) flash_parts: partition 0 invalid magic number 0x200
[11:24:32.714]E (82) boot: Failed to verify partition table
[11:24:32.718]E (86) boot: load partition table error!
[11:24:32.721]ets Jul 29 2019 12:21:46
and then it just keeps looping with the same output over and over.