The CUPS Architecture
When you print a document on a Mac, the operating system does not send the PDF directly to the printer. macOS utilizes the Common UNIX Printing System (CUPS), an open-source printing system developed by Apple for macOS and standard Linux distributions.
When you hit “Print,” CUPS generates a massive temporary spool file (often hundreds of megabytes for high-resolution graphics) and caches the printer’s specific PPD (PostScript Printer Description) configuration in memory. This architecture ensures that if the printer runs out of paper, CUPS can hold the document safely in its cache until the error is resolved.
However, if a specific spool file becomes corrupted, or if a rogue PPD driver causes a memory leak, the CUPS engine will completely lock up. The symptoms are unmistakable: the print queue window gets stuck on “Looking for printer,” jobs instantly pause themselves the moment you resume them, and deleting and re-adding the printer in System Settings fails to fix the issue because the underlying cache is still corrupted.
To restore printing functionality, you must forcefully purge the CUPS spool and cache directories using the Terminal.
Locating the CUPS Cache
Because CUPS operates at a low system level (managing hardware for all users), its directories are heavily restricted and hidden deep within the root filesystem.
The critical directories are:
/var/spool/cups/: Holds the raw print jobs currently stuck in the queue./var/spool/cups/cache/: Holds the cached PPD configurations and printer states.
Purging the Cache via Terminal
You cannot access these directories via the Finder GUI. You must use the Terminal with elevated (sudo) administrator privileges to bypass the filesystem protections.
- Open the Terminal application.
- Before deleting files, you must stop the CUPS daemon to release its lock on the database:
sudo launchctl stop org.cups.cupsd
Press Enter, type your Mac’s administrator password, and press Enter again.
- Now, forcefully delete all pending print jobs stuck in the spool:
sudo rm -rf /var/spool/cups/*
(Note: Ignore any warnings stating that the directory is not empty; the -rf flag forces the deletion).
- Next, delete the corrupted cache files:
sudo rm -rf /var/spool/cups/cache/*
- Finally, restart the CUPS daemon to bring the printing system back online:
sudo launchctl start org.cups.cupsd
The CUPS Web Interface (Optional)
If you prefer a highly technical overview of your printer configurations after a reset, CUPS actually hosts a hidden, local web server directly on your Mac.
You can enable it via the Terminal:
cupsctl WebInterface=yes
Once enabled, open Safari and navigate to http://localhost:631. You will be greeted by the native CUPS administrative portal, allowing you to deeply inspect the health of your freshly reset printing architecture, view exact error logs, and manage network printers with granular control unavailable in standard macOS System Settings.