The Stubborn Update Notification
System administrators who manage fleets of Macs often encounter a frustrating issue: System Settings will insist that a critical macOS update is available, displaying a persistent red notification badge. However, when the user clicks “Update Now,” the download instantly fails, throws a vague “An error occurred” message, or gets stuck endlessly on “Checking for updates.”
This is almost always caused by a corrupted Software Update catalog cache. macOS has downloaded a broken or partial manifest file from Apple’s servers and refuses to discard it. While rebooting into Safe Mode can sometimes clear this cache, you can forcefully purge the corrupted data in seconds using the Terminal, forcing the Mac to pull a fresh update list directly from Apple.
Using the softwareupdate Command
macOS includes a powerful command-line utility specifically designed for managing system patches, appropriately named softwareupdate.
Because you are modifying system-level caches that belong to the root user, you must execute these commands with sudo privileges.
To clear the local update cache, open the Terminal and run:
sudo softwareupdate --clear-catalog
Press Enter, type your Mac’s administrator password, and press Enter again. The command will execute silently. This command strips away any custom catalog URLs (like a corporate update server) and resets the Mac to point strictly to Apple’s default update servers, discarding the cached manifest in the process.
Manually Purging the Plist Files
If the --clear-catalog command does not resolve the frozen update screen, the corruption might be deeper within the local preference files. You can manually delete the plist (Property List) file that tracks update history.
sudo rm /Library/Preferences/com.apple.SoftwareUpdate.plist
By deleting this file, you are wiping the Mac’s memory of previously ignored updates and its current download state. Do not worry—macOS will automatically regenerate a fresh, clean version of this file the next time the Software Update daemon runs.
Restarting the Update Daemon
After purging the caches and the preference files, the background daemon responsible for updates (softwareupdated) will still be running in memory, potentially clinging to the old, corrupted data.
To force the system to reload cleanly, you must kill the daemon. macOS’s launchd system will instantly restart it.
sudo killall softwareupdated
Triggering a Fresh Check
With the caches purged, the plist deleted, and the daemon restarted, your Mac is essentially a blank slate regarding system updates.
You can now open System Settings > General > Software Update, or you can trigger a fresh check directly from the terminal:
softwareupdate -l
The -l (list) flag will force the Mac to reach out to Apple’s servers, download a brand-new, uncorrupted manifest, and list the available updates directly in your terminal window.