I run two WordPress sites. This one — the blog you’re reading — has been here since 2001 and runs about as plain a setup as WordPress offers: the default block theme, stock Gutenberg, not much bolted on. The other one is Sprinkle of Ginger, my web design studio, and it’s the opposite philosophy. It runs the Kadence theme and Kadence’s whole block library on top of it, because clients want layouts that do things, and that’s the tool that does them.
Last week I updated both to WordPress 7.0 the way I’ve updated WordPress a few hundred times before: half-paying attention, coffee in hand, fully expecting nothing to happen. That’s the whole promise of a mature platform. You click the button, a progress bar crawls, and you go back to your life.
This blog clicked the button and went back to its life.
The studio site went blank.
The small panic
I noticed on Sprinkle, where I’d gone to post up a new article. I opened a new post and the editor was just… gone. The admin sidebar was there. The top bar was there. But where the blocks should have been — the toolbar, the canvas, the place where the words actually go — there was nothing. A blank white rectangle, calmly waiting for me to do something it had quietly decided it would no longer let me do.
My first thought wasn’t what’s the technical root cause of this regression. My first thought was the dumb animal one: I just broke my own studio’s website. With a button I wasn’t even looking at.
I did what everyone does. I reloaded. Blank. I reloaded again, harder, as if conviction were a debugging technique. Blank.
Then I noticed the second thing: the Google sitemap on the Sprinkle dashboard had stopped reporting too. Site Kit, the little widget that shows me search traffic and indexing status, was throwing its own quiet error. So now two things were broken, which is the moment a small panic becomes a slightly larger one, because two unrelated failures feel like a pattern, and a pattern feels like the kind of problem that eats your weekend.
The front end of the site was fine, by the way. Every published page loaded perfectly. To a visitor, nothing was wrong at all. The damage was entirely behind the curtain, in the one room where I do the actual work. Which is somehow worse — a house that looks lived-in from the street while the person inside can’t open any of the doors.
So I opened the browser console. And there it was, scrolling past in red, over and over in a loop:
Cannot read properties of undefined (reading ‘isSavingPost’)
I didn’t know exactly what it meant yet. But I knew the shape of it. That’s the shape of one piece of software reaching for another piece of software that wasn’t there when it reached.
What was actually broken (the short version)
I’ll spare you the full autopsy — I wrote the technical version up separately, with the actual fix, for anyone who lands here mid-meltdown. But the gist is almost poetic in how mundane it is.
WordPress 7.0 changed the order in which it sets things up. Not what it does — just the timing. A part of the editor that used to be ready early now gets ready a few beats later.
That’s it. That’s the whole earthquake.
The problem is that some plugins were written to assume that part was always ready. Kadence’s blocks reach for it the instant anything changes, ask it a simple question (“hey, is this post saving right now?”), and for years it always answered. After 7.0, for a fraction of a second during startup, it isn’t there to answer. The plugin reaches into the dark, finds nothing, and crashes. And because it crashes while the editor is still trying to wake up, the editor never finishes waking up. Hence: blank.
Nobody did anything wrong, exactly. WordPress changed something internal it’s allowed to change. The plugin relied on something that had been reliable for a decade. The break didn’t happen in WordPress or in Kadence. It happened in the seam between them — the invisible handshake that worked perfectly right up until the moment it didn’t.
The part I keep thinking about
Here’s what stuck with me, and it’s the reason this is a blog post and not just a support ticket.
This site — the old one, the one you’re reading — never flinched. Same update, same day, same WordPress 7.0. It runs stock Gutenberg with the default theme, so there was much less reaching into the dark during startup, and far less standing between me and a working editor. The 25-year-old blog with the boring setup didn’t even notice. The newer, fancier, more capable site is the one that fell over.
That’s not a coincidence. That’s the whole lesson, sitting right there in the contrast between my two dashboards.
Every tool you add to a site is leverage, and every tool you add is also a new seam — a new handshake that has to keep working forever, including through updates nobody warned you about. Kadence earns its place on the studio site; it does things stock blocks can’t, and clients need those things. But the bill for that capability is exactly what I paid last week: more power, more surface area, more places for a timing change three layers down to blank your screen.
Every dependency is a bet that the thing you’re leaning on will still be there when you lean on it. Most of the time you win. The blank screen is what losing looks like.
Why I’m not stripping anything down to the studs
The tempting takeaway here is the doom one: see, this is why you keep everything minimal, rip the plugins out, go plain. I don’t fully buy it. The plain setup on this blog survives updates partly because it can’t do much — and that’s a fine trade for a personal blog, but it’d be a terrible one for a studio site that needs to actually impress people. Minimalism isn’t a virtue. It’s just one side of a trade, and the right side depends on what the site is for.
The takeaway I actually believe is quieter, and it’s the same one I keep arriving at about almost everything: don’t try to remove the dependency. Build the capability to survive it.
For a website, that looks like keeping real backups, yes. But more than that, it looks like not being a stranger to your own tools. Knowing how to open the console. Knowing that “undefined reading something” means a handshake failed, even if you don’t know which one yet. Knowing it’s almost never as bad as the blank screen makes it feel in the first thirty seconds. The hour I spent reading that error wasn’t lost time — it was the difference between a person who has a website and a person who can run one.
The 25 years are the same story, honestly. Outlasting a quarter-century of platform churn — blogrolls, RSS, the social migration, the algorithm era, now whatever this AI moment turns into — was never about picking the one tool that would never change. Nothing qualifies for that job. It was about staying hands-on enough that when a tool did change, and it always does, I was the guy who could read the error and patch the seam, instead of the guy waiting on a fix that might come Tuesday.
The studio editor is working again now. It took a small patch to catch that failed handshake and hand back a polite “not yet” instead of letting the whole thing fall over. Sitemap’s back too. And I’ll update both sites to 7.1 the same distracted way I updated to 7.0, coffee in hand, fully expecting nothing to happen.
But I’ll know where the console is.
If your Gutenberg editor went blank after WordPress 7.0 and you need the actual fix right now — the one-snippet patch, with the exact code — I wrote that up over on Sprinkle of Ginger. Go get your lights back on. The essay will still be here.
David Daniels has been writing at DavidDaniels.com since 2001. Download the free life planning workbook, Write Open Act, to start mapping the gap for yourself.
