Shelly firmware update fails or is stuck at 99% (Gen3/Gen4): what helps and what doesn't

Shelly Device: Gen3 and Gen4 devices (e.g. Plug S Gen3, Plug M Gen3, Pro 3EM, 2PM Gen4); much of it also applies to Gen2/Plus · Updated · Auch auf Deutsch

Firmware as of: As of 26 Oct 2026 per the official Gen2+ changelog: stable 2.1.1, 2.0.3 or 1.7.6 depending on the device, 2.2.0 only as beta. Not every device gets every version.

Generations: Gen2/Plus, Gen3, Gen4

What you see: In the Shelly app or web interface the firmware update aborts, shows an error, never starts (the automatic midnight update never completes) or the progress stays at 99% or "in progress". In the forums this was reported after versions 1.7 and 2.0 for, among others, Plug S Gen3, Plug M Gen3, Pro 3EM, Pro 1 and 2PM Gen4.

What it means: There is no single cause. Official and semi-official sources mainly name a weak Wi-Fi signal, too many simultaneous updates, and memory and download problems. For the hang at 99% on Pro 3EM and Plug S Gen3 there is a report in the Shelly Community but no confirmed fix (as of this page).

Cost: €0 / CHF 0. Everything here is settings and reboots.

Step 1: Reboot the device and start the update again 5 min

  1. Wait until it's clear the update is no longer running. Never cut power during a running update.
  2. Reboot the device from the app or web interface (Settings › Reboot), not by unplugging it.
  3. Start the update again.

Rebooting and retrying is the first step named by both shelly.guide and an administrator of the Shelly Community.

Step 2: Update from the local web interface instead of the app 5 min

  1. Look up the device's IP address in the app (device information) or in your router.
  2. Open http://<IP address> in a browser on the same network as the device.
  3. Start the update under Settings › Firmware and keep the page open until the device has restarted.

According to shelly.guide, updating via the web interface fixes most cases. Plug M Gen3 owners in the German-language Shelly forum also report that the update only worked for them via the browser.

Step 3: Check the Wi-Fi signal and briefly turn off Eco mode 10 min

  • Read the signal strength in the web interface (Wi-Fi status). shelly.guide names a signal weaker than −70 dBm as a likely cause. Remedies: move the router or access point closer, reposition the device, or retry once the network is improved (see Shelly offline and Wi-Fi problems).
  • Turn Eco mode (Settings) off for the update. A Shelly Community administrator names disabling Eco mode, alongside rebooting, as a remedy for failing updates. You can turn it back on afterwards.

Step 4: Update devices one at a time depends on how many

Don't start all devices at once ("Update all"); update them one after another. shelly.guide explicitly recommends this.

Step 5: Don't run the automatic update at midnight 2 min

If the automatic update never completes but a manual one works:

  • In an owner's blog post, the automatic midnight update did not complete; after moving the update time to after 04:00 it worked. The German-language Shelly forum also advises moving the update time away from midnight.
  • Background per the official changelog: from 2.0.0, schedule-triggered downloads are randomly delayed ("Jitter schedule-triggered downloads").

This is an owner report, not official guidance, but it's risk-free to try.

Step 6: Home Assistant: check the Bluetooth proxy script 5 min

If you use the device as a Bluetooth proxy for Home Assistant, the blog post mentioned above says the installed script (aioshelly_ble_integration) can use so much memory that the update stalls at a few percent. The post describes the update completing after the script was stopped. Restart the script afterwards.

Step 7: Write down the error message 2 min

Note the exact message from the web interface or diagnostic log. The sources mention, among others:

  • "Checksum does not match after writing partition-table.bin" (Pro 1, update from 1.3.3 to 2.0.0, Shelly Community)
  • "DATA_LOSS: ZIP flush error : premature end of data" (blog post)
  • "Bad HTTP response: 404" during download (Plug M Gen3 with factory firmware, Shelly Community)

The sources give no official explanation for these messages, but they are useful for support.

Note for older devices: according to the official changelog, 1.3.3 was a mandatory update before 1.4.0; devices on older versions were not offered 1.4.0 directly.

What doesn't help

  • Factory reset: according to shelly.guide, not a fix for update problems.
  • Third-party firmware files via URL: according to shelly.guide, /ota?url= is meant for Gen1. For Gen2 and newer, contact support; a wrong file can brick the device.
  • Plug M Gen3 owners with factory firmware report in the Shelly Community that they could update the device with a beta firmware via "Update from URL" (run twice); afterwards AP and range extender were off. This is an owner report with risk and not a recommendation of this page.

When to contact support

  • The update still fails after steps 1–5 via the web interface and with a good signal.
  • Progress stays at 99% and rebooting changes nothing.
  • The device no longer boots or is unreachable after an update.

Give device type, device ID, current firmware version and the exact error message: Shelly support (official).

Sources

FAQ

Can I unplug the device if the update hangs at 99%?

Not while the update is still running. shelly.guide, a guide project by Shelly staff, explicitly says never to cut power during an update. If the progress stays put for a long time, first check whether the device still responds in its web interface; owners report the device stays reachable at 99%.

Does a factory reset help after a failed update?

According to shelly.guide, no. A factory reset deletes your settings but doesn't change the cause (connection, memory, download).

Why doesn't my device get an update that others already have?

According to the official changelog, firmware 2.0.0 was rolled out gradually, and Shelly's documentation says not all devices receive the same firmware updates. An update not showing up yet is not automatically a fault.

Can I flash a firmware file myself?

According to shelly.guide, manual flashing via /ota?url= is meant for Gen1; for Gen2 and newer you should contact support. A wrong file can brick the device.