← Writing

The plugin update that broke checkout on a Saturday

Picture a store that runs on WooCommerce. The owner has auto-updates turned on for plugins, because keeping things patched is supposed to be good practice. On a Saturday morning, a payment gateway plugin updates itself. By noon, checkout is broken. Customers can add items to the cart, but when they click to pay, they get a white screen. No error message, no fallback, just blank. The store processes maybe fifteen orders on a typical Saturday. By the time the owner notices, it has been down for four hours.

The owner does not know how to roll back a plugin. The hosting panel does not have a rollback feature. They try disabling the plugin, but that just removes the payment option entirely. They try reinstalling the old version manually, but they do not have a copy and the plugin developer does not host old versions. They open a support ticket with the plugin vendor. The vendor responds Monday. The store is down for the rest of the weekend.

That is the usual shape of this call. Auto-updates are sold as a convenience and a security measure, and they are, right up until an update breaks something in production and there is no quick way to undo it. The advice to keep plugins updated is correct. The mistake is updating directly in production with no staging copy, no rollback plan, and no confirmation that the update works before customers see it.

What to do before updating a store

The correct sequence is to test the update somewhere that is not the live site. That means either a staging copy of the site or a local development copy. You apply the update there, you test checkout, you test account login, you test any forms or integrations that touch the plugin. If it works, you apply the update to production. If it breaks, you know before customers do, and you have time to fix it or wait for a patch.

Most store owners do not have a staging site, because most hosting setups do not include one, and setting one up manually requires enough technical work that it does not happen. The result is that updates go live untested, and the first time anyone finds out there is a problem is when a customer reports it or the owner notices sales have stopped.

The other thing to do before any update is to take a backup. Not a scheduled backup that runs at midnight. A manual backup, right then, before you click update. That gives you a restore point that is minutes old instead of hours or days old. If the update breaks something, you restore from that backup and you are back to where you were. The restore still takes time, but it is faster than troubleshooting a broken plugin under pressure.

If your hosting does not make it easy to take a manual backup and restore from it, you are depending on the update working every time. That is not a safe assumption. Updates break things often enough that it should be planned for, not treated as a rare edge case.

Why rollback matters more than hoping

A rollback feature means the host keeps snapshots of the site at the filesystem level, and you can revert to a snapshot from an hour ago or a day ago with a few clicks. It is faster than a restore, because you are not moving files or databases. You are just telling the system to use an earlier version of the disk. The site is back up in minutes, and you can troubleshoot the update or wait for a fix without the store being dark.

Rollback is not a standard feature on most shared hosting or cheap managed WordPress hosting. It shows up on hosts that are built for stores or for sites where downtime has a dollar cost. The reason it matters is that it changes the risk profile of an update. If you know you can roll back in two minutes, you can update during business hours and fix it immediately if something breaks. If you do not have rollback, you are gambling that the update works, and if it does not, your site is down until you can restore a backup or get support.

RedCyfer hosting includes staging and rollback because most of the stores I host have been burned by this at least once before they moved. Staging is where updates get tested. Rollback is the safety net if something gets past testing or if an emergency patch has to go live without a full test cycle. It is not a replacement for testing. It is the fallback for when testing is not enough or not possible. The alternative is crossing your fingers and hoping the update works, and hope is not a plan.


Need this kind of thinking applied to your own setup? Get in touch →