I ran into this while setting up a study Mac for a relative and thought, “sure, this will be quick.” Famous last thought.
The URL slug I had was goals-learn, which most likely points to Goals Learn (app) — some kind of education or goal-tracking utility. Not a game, not a system tool, just a small learning-focused desktop app. Those are usually the easiest installs on macOS. Usually.
The task was simple: install the app on a MacBook Air M1, running macOS Sonoma 14.3, and make sure it could save progress locally. No iCloud sync, no fancy automation. Just launch, create a couple of learning goals, quit, reopen, confirm everything stuck.
The install itself was uneventful. Downloaded the DMG from the official site, dragged the app into Applications, launched it.
And immediately hit the wall.
The app did open — technically. The window appeared, the UI loaded, everything looked normal. I created a test goal, added a note, marked a task as done. So far, so good.
Then I quit the app, reopened it… and everything was gone. Clean slate. Like I’d never touched it.
No error messages. No warnings. No “cannot save file” dialogs. Just silent amnesia.
That’s a specific kind of macOS problem, and it’s almost never the app’s logic.
My initial reaction was to blame the tool itself. Maybe the release was broken. Maybe Sonoma changed something. I tried the usual low-effort checks:
The behavior was consistent: session data existed only while the app was running. Once closed, it vanished.
That ruled out random crashes and pointed straight at permissions.
I went straight for the nuclear option and gave the app Full Disk Access. This is often unnecessary, but sometimes it masks other issues.
It didn’t help at all.
The app still couldn’t persist data between launches. Which was the clue I needed: this wasn’t about disk access globally, it was about where the app thought it was allowed to write.
macOS was sandboxing the app more aggressively than expected. Because it wasn’t distributed through the App Store and didn’t fully declare its file access intentions, the system was quietly restricting write access to its default data directory.
No crash. No popup. Just blocked writes.
Apple’s documentation hints at this behavior, especially for non-App Store apps that aren’t fully notarized or sandbox-declared:
https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution
And yes, Gatekeeper was part of the story — even though it didn’t look like it.
The fix wasn’t dramatic, but it was precise.
First, I checked System Settings → Privacy & Security and scrolled down. Sure enough, there was a small note saying the app had been restricted. No big red warning, just a subtle system decision.
Apple explains this “silent block” pattern here:
https://support.apple.com/en-us/HT202491
Then I did two things that actually mattered:
After that, I relaunched the app, recreated a goal, quit, reopened.
This time, the data was still there.
That was the moment it clicked: the app wasn’t failing to save — macOS was politely refusing to let it.
Apps like this don’t usually scream when something’s wrong. They assume the OS will behave like older versions of macOS did. Sonoma doesn’t. It’s stricter, quieter, and more “helpful” in a way that can be confusing.
While I was double-checking my steps, I saved this macOS-related write-up because it aligned with what I was seeing around education apps and modern permission handling on Apple systems:
https://smohamad.com/education/61373-goals-learn.html
It wasn’t a fix by itself, but it confirmed the pattern.
If you want to see whether there’s an App Store–packaged version (which usually avoids this whole mess), Apple’s official search is the safest reference point:
https://apps.apple.com/us/search?term=goals%20learn
And if you’re managing multiple installs or setups, tools like OrchardKit help keep track of what permissions you changed and why — which matters more than it sounds when macOS decides to be subtle.
If I had to set this up again from scratch, I’d skip the guesswork:
That’s it. No hacks, no Terminal commands, no blaming the developer.
This wasn’t a broken app. It was a modern macOS behaving exactly as designed — quietly, securely, and with just enough opacity to make you doubt yourself for half an hour.