The Panics Stopped Because I Swapped the Plug

November 2, 2026 · Todd Deshane · 7 min read

Correction. On September 1 I published "The Panics Stopped. Nothing Was Fixed." It said my sump pump's smart plug crashed 201 times between March and April, then stopped, with the same firmware and the same code. That was wrong. 198 of those crashes were a different plug. The device in the pit was replaced on March 20, and the crashes stopped that afternoon. The September 23 post that counted the same series as one device carries the same error. Details below; the old posts are left as written.

The Robot Report ran a piece this weekend from a security vendor that says it found 28 previously unknown vulnerabilities in robotics software in under two days, using AI to speed up the search. The software is from big names, the fixes are not out yet, and the piece ends with three questions a team should be able to answer when news like that lands: where do we use the affected software, what could the weakness change, and how do we verify that a fix actually protects us.

The first question sounds like the easy one. You look at your inventory. So I tried to answer it for the one device in my house that matters most: the smart plug that switches my sump pump.

What my records say

The repository for my monitoring system has a clear picture of that plug. There is an investigation document from February describing a Shelly Plug US Gen4 on a factory firmware build from October 2025, crashing every few hours. There is a GitHub issue. There is a status document with an unchecked box: update the firmware to the stable release. There is a setup guide in the README for enabling password authentication on it. And there is a script I wrote on February 27, an over-the-air firmware updater, built for that exact device, with that exact firmware string hard-coded as the thing to look for.

I wrote about that script in September. I said I had built the tool and never run it, and that the plug had sat on old firmware through hundreds of crashes with the vendor's fix one call away.

What the device says

This morning I asked the plug to identify itself. One request, no password needed.

My recordsThe plug, today
ModelShelly Plug US Gen4Shelly Plug US Gen2
Firmware1.7.99, factory build, Oct 20251.3.3, built June 25, 2024
Latest stable"1.7.4, January 2026"1.7.6, released October 26, seven days ago
Authenticationenabled, per the setup guideoff
After a power cutrelay returns to its last staterelay returns off
Matter smart-home protocolpresent, disabled in Februarydoes not exist on this device

It is not the same plug. A Gen4 cannot report itself as a Gen2, and firmware cannot run backward from 2025 to 2024. Somewhere between February and today, the device my entire paper trail describes came out of the pit, and a different one went in.

When

Nothing in the repository records a swap. No commit, no note, no line in any document. The monitor log does, if you know to look.

The old plug is in the log through the afternoon of March 20: a crash at 3:38 pm, then forty minutes of failed requests. Then the monitor itself was stopped, and at 9:30 pm it started again pointed at a new network address, the first in the chain of addresses the current plug has drifted through ever since. Three power-on resets bracket that week: March 13, March 20 in the morning, March 26. A document from June, describing a later move of the monitor between computers, refers in passing to the plug's current settings as the "known-good Gen2 config," as if it had always been that way.

My best reconstruction: the Gen2 is the plug I had before. The Gen4 was bought in February to replace it, crashed constantly for three and a half weeks, and on March 20 I put the old one back. Then I never wrote it down, and seven months later I was publishing analysis of the wrong device.

What the crash numbers actually say

The September post counted 205 crash reboots of one kind between late February and the end of April, and found a puzzle: they stopped on April 30 with no firmware change. Split the same count at 9:30 pm on March 20:

CrashesPeriodRate
Gen4, factory firmware198Feb 26 to Mar 20, 22 daysabout 9 a day; 37 on March 19 alone
Gen2, 2024 firmware7Mar 26 to Apr 30one every 5.2 to 6.0 days of uptime, like a clock
Gen2 since Apr 300186 days

So the crashes did not stop for no reason. They stopped because I changed the hardware. The strange six-day rhythm the September post noticed is real, but it belongs only to the seven crashes on the Gen2, and those seven then stopped too. That smaller puzzle survives. The big one was never a puzzle; it was a missing commit.

And the firmware updater I confessed to never running? It was never for this plug. Run against this device today, it would fail on the sixth line of its own pre-flight check, asking about a Matter component the plug does not have. If I patched around that, it would warn that the available version is not one it expects, and then log "pump stays powered" based on a power-on setting this plug does not have.

Seventeen releases this plug has not had

The plug's firmware is 860 days old. Shelly has shipped seventeen releases for this device family since. Reading the changelog with my own open items next to it:

Also in the pile: a 2024 release that dropped an obsolete Wi-Fi security protocol, and a 2025 one that put limits on request sizes. None of this is exotic. It is the ordinary accumulation of fixes on a device I thought I had inventoried.

Why I didn't press update this morning

The security piece's third question is how you verify protection, and it makes the point that a published patch still has to be proven safe for your system. For a relay on a sump pump, that is concrete. An update is a reboot. This plug boots with the relay off. My monitor will turn it back on within about thirty seconds, and the duty-cycle controller would do it on the next pulse anyway, so the pump is not at risk. But I would be rebooting a safety device whose configuration I have already been wrong about once today.

So the update waits for a read-back: model, firmware, power-on behavior, authentication, the open network, Bluetooth, cloud, and the relay state, read before and read after, diffed. While I have it rebooting, the power-on setting gets fixed to "on." The forecast is dry through Wednesday and wet Thursday. That is the window.

What I'm changing

The short version: asked where I use the affected software, I found that my records describe a plug that left my basement in March. The crash series I explained in September was two devices. The one in the pit is on firmware from June 2024, seventeen releases behind, and three of those releases touch problems I have written about this fall.

Do you know what is actually switching your equipment?

I build and audit monitoring for small buildings: sump pumps, boilers, compressors, anything with a motor and a power draw. An audit starts with the devices themselves: model, firmware date, what happens after a power cut, and whether your records match what is on the wall.

See the Physical AI practice