Yeah, every Canon owner hits this at some point. You're mid-print, the Mac decides the printer is offline, and nothing you click brings it back. Here's the fix that works 90% of the time, tested on macOS Monterey through Sonoma.
The Real Fix: Delete and Re-add the Printer
- Unplug the USB cable from the printer and the Mac. If it's a network printer, skip this and just close the printer's settings app.
- Open System Settings (or System Preferences on older macOS) and go to Printers & Scanners.
- Find your Canon printer in the list. Right-click (or Control-click) it and choose Delete Printer. If you can't right-click, select it and press the minus button.
- Now unplug the USB cable entirely. Wait ten seconds. Plug it back into a different USB port on the Mac, not the same one.
- Back in Printers & Scanners, click the + button to add a printer. Your Canon should show up under Nearby Printers or as a USB device. Select it and click Add.
That's it. Probably prints again instantly. If it doesn't, restart the Mac after step 3 and before adding the printer again.
Why This Works
What's actually happening here is that macOS stores a print queue for each printer in a service called CUPS (Common UNIX Printing System). That queue gets corrupted or stuck in a state where it thinks the printer is unreachable. Deleting the printer removes that queue entirely, including the stale connection data. When you re-add the printer, macOS builds a fresh queue and re-negotiates the connection from scratch.
Plugging into a different USB port forces the Mac to treat it as a new device. That avoids any cached device-tree info that might be tied to the old port. It's a dirty trick, but it sidesteps the whole class of "driver loaded but device ghost" problems.
Less Common Variations
The "Use Last Used Printer" Setting
In System Settings > Printers & Scanners, there's a checkbox for Default printer. If it's set to Last Printer Used, and the last task was a failed one, it might keep showing offline even after a reset. Set it to your specific Canon model instead.
Network Printers (Wi-Fi/ethernet)
The delete-and-re-add trick still works, but you also need to verify the printer's IP address hasn't changed. Canon printers often get a new IP from DHCP after a router reboot. Do this:
ping YOUR_PRINTER_IP
If it doesn't reply, the IP changed. Find the new one from the printer's front panel (usually under Network Settings > TCP/IP) and add the printer with that IP using IP printing rather than Bonjour discovery.
Driver Conflict After macOS Update
macOS updates sometimes break Canon's driver. The offline symptom is the first sign. If re-adding doesn't help, grab the latest driver from Canon's site for your exact model and macOS version. Then, in step 3, use AirPrint instead of the vendor driver when you add it back. AirPrint often works fine and skips the flaky vendor code entirely.
Power Management on the Printer
Some Canon PIXMA models go into deep sleep after a few minutes of idle. The Mac misreads that sleep state as "offline." Check the printer's menu for an Auto Power Off setting and set it to a longer interval or disable it. Then, in Mac's Energy Saver settings, uncheck Put hard disks to sleep — that doesn't directly affect USB, but it's a common misdiagnosis and worth ruling out.
Prevention
The root cause is almost always a stale queue, so the habit that prevents this: create a shortcut or script that deletes the queue and re-adds it when the printer acts up. You can do it via terminal in seconds:
lpstat -p | grep -i canon # find the exact name
sudo lpadmin -x Canon_PIXMA
sudo lpadmin -p Canon_PIXMA -E -v usb://dev/your_printer -m everywhere
Run that when it happens again. But honestly, the manual delete-and-add is fine.
Also, don't update macOS on release day. Wait a week. If Canon releases a driver update in that window, you save yourself the whole dance.
And one more thing: keep the USB cable short. Long cables (over 3 meters) cause signal degradation that can mimic an offline state. I've seen a 5-meter cable cause exactly this. Swap it out, and the problem mysteriously disappears.