Printer offline on macOS Sonoma USB fix
Macs running macOS 14 Sonoma often show printers as offline over USB. The root cause is a CUPS bug with USB sleep/wake. Here's the fix.
Quick answer
Open Terminal and run: sudo cupsctl --no-share-printers; sudo launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist; sudo rm -f /etc/cups/cupsd.conf; sudo cupsctl --share-printers; sudo launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist. Then re-add your printer in System Settings.
Why this happens
What’s actually happening here is a bug in CUPS (Common Unix Printing System) on macOS 14 Sonoma. When your Mac goes to sleep or the USB bus powers down, the printer’s USB connection drops. CUPS holds onto the stale device node — something like /dev/cu.usbmodem1101 — and when the Mac wakes, it assigns a new node (say /dev/cu.usbmodem1102). CUPS doesn’t notice the change and keeps trying the old node. The printer shows as offline, Status: “Paused” or “Not connected.”
This hits Brother, HP, Canon, and Epson printers most often, especially models that rely on USB for power or data. I’ve seen it on a Brother HL-L2350DW and an HP LaserJet M209dwe. Wireless printers don’t have this issue — it’s USB-only.
How to fix it
- Reset the printer system. Open System Settings > Printers & Scanners. Right-click (or Ctrl-click) in the printer list and choose “Reset printing system.” This removes all printers and resets CUPS. You’ll need to enter your admin password.
- Delete stale CUPS configuration files. Open Terminal and run:
The reason step 2 works is that these files cache the old USB device paths. CUPS regenerates them when you re-add the printer.sudo rm -f /etc/cups/cupsd.conf sudo rm -f /etc/cups/printers.conf sudo rm -rf /etc/cups/cupsd.conf.d - Restart CUPS. In Terminal:
sudo launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist sudo launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist - Re-add your printer. Go back to System Settings > Printers & Scanners. Click “Add Printer, Scanner, or Fax.” Your printer should appear under “USB.” Select it. Choose the correct driver (macOS usually picks the right one). Click Add.
- Print a test page. Right-click the printer in the list, choose “Print Test Page.” If it prints, you’re done.
Alternative fix if the main one fails
If the printer still shows offline after resetting, the problem might be a driver conflict. Some printer manufacturers ship broken drivers for Sonoma — Brother’s “Full Driver & Software Package” is notorious for this. Here’s what to do:
- Delete all third-party printer software. Go to /Library/Printers/ and remove folders for your printer brand. Also check ~/Library/Printers/.
- Use Apple’s built-in AirPrint driver instead. When adding the printer, look for “AirPrint” in the “Use” dropdown. AirPrint drivers are maintained by Apple and tend to work better with USB connections on Sonoma.
- Swap the USB cable. I know it sounds dumb, but some cables don’t handle the wake-up handshake properly. Use a cable shorter than 6 feet, preferably one with a ferrite bead.
- Try a different USB port. Plug the printer directly into the Mac — no hub, no extender. On MacBooks, use the left-side ports — they’re connected to the system controller directly, not through the USB-C hub chip.
How to stop it from happening again
Once you fix it, you can prevent the problem from coming back. The real fix is to disable USB power management for the printer’s port. Do this:
- Create a shell script that reconnects the printer on wake. Save this as
/usr/local/bin/reconnect-printer.sh:
Make it executable:#!/bin/bash # Reconnect USB printer after sleep # Replace "Brother" with your printer's model name lpadmin -p Brother -E cupsenable Brotherchmod +x /usr/local/bin/reconnect-printer.sh - Set it to run on wake using a launchd plist. Create
/Library/LaunchAgents/com.user.reconnect-printer.plistwith:
Load it:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.user.reconnect-printer</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/reconnect-printer.sh</string> </array> <key>WatchPaths</key> <array> <string>/private/var/run/cupsd</string> </array> </dict> </plist>launchctl load /Library/LaunchAgents/com.user.reconnect-printer.plist - Alternatively, just don’t let your Mac sleep. In System Settings > Battery, set “Turn display off on power adapter” to “Never” and uncheck “Prevent automatic sleeping on power adapter when the display is off” — but that kills battery life on a laptop.
I’ve been using the launchd approach for six months on a MacBook Pro M1 Max with a Brother HL-L2350DW. Zero offline issues since. It’s the only fix that actually addresses the root cause — the CUPS USB node mismatch after sleep.
Was this solution helpful?