ESP32 BLE proxy WiFi keeps dropping — Bluetooth goes to zero in HA, signal is great (-11 dBm)

What’s happening
My ESP32 BLE proxy runs fine for a while, then its WiFi starts reconnecting on its own — happens several times a day. Every time the WiFi drops, all my Bluetooth connections in Home Assistant go straight to zero. Not just one sensor dropping off — the entire Bluetooth connection count hits zero until the proxy comes back online.

I’m running this on Home Assistant OS 18.0 with HA Core 2026.7.4, and the ESPHome add-on is at 2026.7.3 (latest). The proxy itself is an ESP32 board powered via USB, flashed with ESPHome’s standard BLE proxy firmware.

Here’s the confusing part: the WiFi signal is excellent
I pulled the device info from ESPHome’s log panel and my RSSI is -11 dBm. That’s basically “the ESP32 is sitting right next to the router” level of signal strength. Normal room usage is usually -50 to -70 dBm, and things start getting sketchy around -80.

So I can rule out weak signal / distance from AP as the cause. The proxy has a rock-solid RF link and it still drops off several times a day. That actually makes it more puzzling — if the signal were marginal, at least there’d be an obvious direction to investigate.
Device info (redacted):

WiFi: Connected: YES
IP Address: 192.168.x.x
Channel: 10
Signal strength: -11 dBm
Uptime counter: 10 attempts (~308s last cycle)
BLE client state: IDLE, Auto-Connect: FALSE

The two errors I see when it drops
When the proxy goes offline, the ESPHome add-on log shows:

ERROR All specified devices ['OTA'] could not be resolved.
  Is the device connected to the network?
WARNING No devices matching 'esp32-ble-proxy-macx-local'
  were discovered.

That tells me the WiFi dropped hard enough that the ESP32 fell off the network entirely — OTA can’t reach it and mDNS discovery fails. So the root cause is upstream: the proxy’s WiFi connection itself, not Bluetooth.

Then, as HA tries to clean up the stale BLE session, I get a second error:

esp32-ble-proxy-xxxx [A4:CB:8F:XX:XX:1A]: None - F2:76:XX:XX:XX:XX:
  ESPHomeClient bleak client was not properly disconnected
  before destruction

This one is the symptom — bleak (HA’s Bluetooth backend) tearing down a proxy session that was already broken by the WiFi drop. The real problem is the WiFi instability above.

My ESPHome config (redacted)

Here’s the relevant section from my esp32-ble-proxy-xxxx.yaml:

esp32:
  board: esp32dev
  framework:
    type: arduino

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # static IP set, no power_save_mode toggled yet

bluetooth_proxy:
  url: http://192.168.x.x:8123
  port: 80

Nothing fancy — stock BLE proxy config with a static IP assignment. I haven’t touched power_save_mode or any advanced WiFi tuning yet because I’m not sure which knob to turn first.

What I’ve tried so far

  • Power-cycled the ESP32 (unplug USB, wait 10s, plug back in) — it recovers, but the dropout pattern returns within hours
  • Verified the USB power source isn’t shared with anything else (dedicated port)
  • Checked that the static IP isn’t conflicting on my router — no DHCP overlap
  • Confirmed RSSI is -11 dBm (not a signal problem)
  • Not yet tried: adding power_save_mode: none, swapping the USB cable, or trying a different USB power adapter

What I think is going on (but could be wrong)

My working theory shifted after seeing the RSSI. Since the signal is basically perfect, I’m now leaning away from “RF issue” and toward:

  • Power delivery — USB supply sagging under load? (The ESP32 draws more when BLE is active + WiFi is pumping)
  • ESP-IDF WiFi stack bug — known flakiness on certain boards after hours of uptime? Maybe a memory leak in the WiFi task?
  • Router-side issue — DHCP lease timeout? NAT table entry expiring? Something that kills the TCP session even though the link layer looks fine?
  • Something else entirely that I haven’t thought of

Honestly at this point I’m shooting in the dark a bit — would love anyone who’s seen “great signal but still drops” to chime in.

Questions for anyone who’s seen this

  1. What’s your ESP32 BLE proxy uptime? Do yours run for days/weeks without a WiFi drop, or do you see periodic reconnects too?
  2. If you’ve fixed “good signal but still drops” before — what was it? Power supply? A specific ESPHome YAML setting? Router config change?
  3. Should I add power_save_mode: none to my wifi: block as a first try, or is there something more fundamental I should check first?
  4. Anyone on HA Core 2026.7.x + ESPHome 2026.7.3 seeing the same OTA resolution failure pattern?
  5. Could -11 dBm actually be too good? Like the ESP32 is saturating its receiver sitting that close to the AP? (Probably a dumb question but I’ll ask anything at this point.)

Thanks in advance — will update this post as I narrow things down.

Have you tried ESP-IDF framework, it has been the recommended for quite a while now.

Do you have any other hardware you can try? The WiFi and Bluetooth share some of the same resources, and on certain devices that can cause dropouts like you’re seeing. I finally switched all my bluetooth proxies to ESP32 devices that have built in PoE ethernet. They’ve been rock solid.

  • I’d start with the power supply. I’ve had one running for a few years with no dropouts I’ve noticed.
  • Power save mode will actually reduce the power available for WiFI. I would add a WiFI signal sensor so you can see if the signal stays constant or drops over time:
sensor:
  - platform: wifi_signal
    name: WiFi Signal
    id: wifi_signal_db
    update_interval: 10s
    entity_category: "diagnostic"
  • I try to always keep a few spare esp’s on hand to swap out for troubleshooting the hardware. I have one right now that can only connect to my router, but not to any access point, so I can’t use it in the location I need it. I have no idea what part of the WiFi hardware would fail to cause that.

Maybe related:

If it is above, this was broken recently and fixed in 5.5.4 looks like it has reappeared.