macOS 27 beta 2 is a decent release from a user perspective, just don’t look under the covers too much, or you’ll be endlessly irritated by some runaway processes that will peg a CPU core and churn out enormous volumes of error logs, sitting in a loop endlessly cycling on a condition that isn’t going to fix itself.
appstoreagent and dasd are two of the most common, and you’ll regularly find them saturating a CPU core.
The problem with appstoreagent looks like a bad upgrade script, and if you ask for its log for the past minute –
log show --predicate 'process == "appstoreagent"' --last 1m
You’ll probably see loads of errors like-
2026-06-28 08:01:38.931944-0400 0x37f4f Error 0x0 1006 0 appstoreagent: (libsqlite3.dylib) [com.apple.libsqlite3:logging] no such column: active_launch_events.recent_launch_times in "SELECT active_launch_events.ROWID, active_launch_events.bundle_id, active_launch_events.containing_bundle_id, active_launch_events.event_source, active_launch_events.is_extension, active_launch_events.launch_end_time, active_launch_events.launch_start_time, active_launch_events.recent_launch_times, active_launch_events.timestamp, active_launch_events.payload FROM active_launch_events"
I spent as much time as I’m willing to spend trying to find the SQLite database it didn’t properly upgrade, so I moved to plan b-
while true; do
killall appstoreagent 2>/dev/null
sleep 10
done
I have SIP enabled, so I can’t just disable the agent, and the system tries to keep it alive so if you kill it, it will restart it eventually, hence the loop.
There are a large number of people talking about this problem online, with a variety of fixes (e.g. deleting cache files, disabling stats reporting, etc.). None of them work, though killing the agent makes it temporarily look like a win so a lot of people are quickly celebrating the problem is gone. And then it returns.
Processes like this should be built with exponential backoff: Instead of sitting in a tight loop hammering a problem that isn’t going to magically resolve itself, it should wait longer and longer between tries to some capped max. But it doesn’t and instead sits spinning on an issue. Lame.
After brute-force dealing with appstoreagent, dasd seems to have been resolved incidentally, presumably having been collateral damage of the other process’s issues, likely being hammered in its futile loop.
Is this a good fix? No, it’s terrible, and this still gives a window for that shitty, busted process to go in its stupid loop for a few seconds. But the scale of the issue is dramatically reduced.