Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by whitelisting our website.
Posted inUncategorized

Apple Journal’s Atrocious Undo Bug Has Been Fixed (and SwiftUI, Per Se, Is Not to Blame)

On the eve of WWDC, in a post arguing that “SwiftUI Only Makes It Easy to Develop Bad Apps”, I wrote about an atrocious bug in Apple’s Journal app:

If you’re running MacOS 26 Tahoe, open Journal and make a new
dummy entry. Type something like “The quick brown fox.” Then
double-click on the word “brown” and delete it. Now invoke Undo.

What you expect is for the word “brown” to reappear. What
happens is … the whole sentence disappears. Gone. Invoke
Redo and you only get back to “The quick fox.” The word “brown”
is just gone forever. It’s nowhere in the Undo stack. That’s
just profoundly fucked up. I’ve never seen anything like this
with an AppKit app, ever. (I’ve never seen it with a UIKit app
either — and the same thing happens on iOS with Journal. It’s
just that you notice it less often because we don’t invoke Undo
and Redo nearly as often there.)

Marcin Wichary, linking to my post from his remarkably good, remarkably prolific blog Unsung, wrote:

Software engineering typically has some categories of bugs and
failures that result in immediate action — a night shift, a war
room, “sevs,” and so on. Those are, in my experience, things like:

  • the app crashes,
  • the site doesn’t load,
  • there is data loss.

Depending on what you work on, this list will also likely include
security problems, regulatory considerations, privacy-leaking
bugs, and so on. In a more mature organization, these are all well
documented, but even in early startups there is some shared
understanding that some bugs are bigger than life and they take
immense priority over pretty much anything else.

At any company, a version of this list needs to exist for
front-end and user-experience problems, and undo should be on top
of that list. If you break undo, you drop what you’re doing to
fix it
.

This seems to be what exactly happened. I don’t understand how Journal’s data-destroying Undo bug persisted as long as it did, but after I wrote about it two weeks ago, I heard from Apple PR that:

  • The text editing component in Journal is in fact UIKit, not SwiftUI, so I was wrong to blame SwiftUI just because Journal is largely SwiftUI-based.
  • The bug had been identified and fixed for a future update.

Well, the future is already here, because the buggy Undo behavior in Journal is fixed in developer beta 2 on both MacOS and iOS 27. Nice. I hope it gets fixed for the 26.6 releases too, but at the moment it’s still broken in the current developer beta of 26.6 (and, of course, still broken in all the v26.5 OSes). So be careful while writing in Journal.

Leave a Reply

Your email address will not be published. Required fields are marked *