Why Ubuntu Printers Stop Working
Printer issues on Ubuntu Desktop (22.04 LTS, 24.04 LTS, and 25.10) almost always fall into one of four categories: the CUPS print service is broken, the wrong driver was installed, USB/network permissions are misconfigured, or a recent system update changed driver package dependencies. Here are 8 fixes that cover all of them.
Fix 1: Check the CUPS Service Status
CUPS (Common Unix Printing System) is the engine behind all printing in Ubuntu. If it's not running, no printer will work.
1. Open a terminal (Ctrl + Alt + T).
2. Check status: sudo systemctl status cups
3. If inactive, start it: sudo systemctl start cups && sudo systemctl enable cups
4. Open the CUPS web interface at http://127.0.0.1:631/ in your browser to see all printers and their job queues.
5. Click your printer → Print Test Page. If this works, the hardware is fine and the issue is the desktop print dialog.
Fix 2: Remove and Re-add the Printer
A broken printer entry in CUPS can cause all jobs to fail silently. Delete it and add it fresh.
1. Go to Settings → Printers.
2. Right-click your printer → Remove Printer.
3. Click Add a Printer. Ubuntu will auto-detect USB-connected printers and network printers on the same subnet.
4. For HP printers: install the HP driver stack first — sudo apt install hplip hplip-gui — then run hp-setup in a terminal. This auto-selects the correct plugin for your model.
5. For Canon and Epson: search your model number on the manufacturer's Linux driver page and download the .deb package.
Fix 3: Reinstall CUPS and Reset the Print Queue
If CUPS itself is broken (common after Ubuntu major version upgrades):
1. Stop CUPS: sudo systemctl stop cups
2. Purge and reinstall: sudo apt purge cups cups-browsed && sudo apt install cups cups-browsed
3. Clear the stale print queue: sudo rm -rf /var/spool/cups/*
4. Start CUPS: sudo systemctl start cups
5. Re-add your printer via Settings → Printers.
Fix 4: Fix USB Printer Permissions
USB printers sometimes stop working after kernel or udev updates because the printer's device file changes permissions.
1. List USB printers: lsusb | grep -i print
2. Find the bus and device number from the output (e.g., Bus 001 Device 003).
3. Check permissions: ls -la /dev/usb/lp0 (or lp1, lp2).
4. Add your user to the lp group: sudo usermod -aG lp $USER
5. Log out and back in. Test printing.
Fix 5: Install the Correct Printer Driver
Ubuntu's driver database is large but incomplete. Finding the right driver makes the difference between a working printer and endless failures.
For HP printers:
- Run
hp-checkto verify your HPLIP installation is complete. - Run
sudo hp-pluginif hp-check reports a missing binary plugin (needed for HP LaserJet, OfficeJet Pro, and some DeskJet models).
For Canon printers:
- Go to canon.com/support, search your model, and download the Linux cnijfilter or carps2 .deb package.
- Install:
sudo dpkg -i cnijfilter*.deb && sudo apt install -f
For Epson printers:
- Add the Epson IME repository:
sudo apt install epson-inkjet-printer-escpr - Or download the specific driver from avasys.jp/ink/index.html.
For Brother printers:
- Download the Linux .deb driver from support.brother.com and run their install script:
sudo bash linux-brprinter-installer-*.*.*-*.sh
Fix 6: Fix Network Printer Not Showing Up
If your printer is on the network but doesn't appear in Ubuntu's printer list:
1. Make sure Avahi (mDNS) is running: sudo systemctl status avahi-daemon
2. If stopped: sudo systemctl start avahi-daemon && sudo systemctl enable avahi-daemon
3. Install network printing support: sudo apt install cups-browsed
4. Add the printer manually by IP: open CUPS at http://127.0.0.1:631/ → Administration → Add Printer → Internet Printing Protocol (ipp) → enter ipp://192.168.x.x/ipp/print.
Fix 7: Fix Printer Shows Offline or Paused
When a job fails, CUPS pauses the printer to prevent queue flooding. It shows as "offline" even if the hardware is on.
1. Open CUPS at http://127.0.0.1:631/ → click your printer → Resume Printer.
2. Cancel all stuck jobs: click Jobs → select all → Cancel.
3. From the terminal: sudo cupsenable PRINTER_NAME && sudo cupsaccept PRINTER_NAME (replace PRINTER_NAME with yours from lpstat -p).
Fix 8: Check AppArmor Restrictions
AppArmor, Ubuntu's mandatory access control system, sometimes blocks CUPS from accessing printer drivers after kernel updates.
1. Check AppArmor logs: sudo dmesg | grep -i apparmor | grep cups
2. If you see DENIED entries: sudo aa-complain /usr/sbin/cupsd
3. Test printing. If it now works, the AppArmor profile is too restrictive for your printer driver.
4. Report the issue to Ubuntu's AppArmor team or switch back to enforce mode after updating the profile: sudo aa-enforce /usr/sbin/cupsd
Frequently Asked Questions
Why did my Ubuntu printer stop working after upgrading to 24.04?
Ubuntu 24.04 moved to using CUPS 2.4 and changed the default paper size handling. Some older HPLIP versions are incompatible. Run sudo apt upgrade hplip and then hp-setup to reconfigure your HP printer. For other brands, re-add the printer from scratch after upgrading.
My printer shows as "Ready" but nothing prints — what's wrong?
The job is likely queuing in CUPS but failing silently. Open http://127.0.0.1:631/jobs/ to see all jobs and their error status. The most common cause is a driver mismatch — the printer PPD file describes a different model than your actual hardware. Re-add the printer and choose the exact model number, not a generic entry.
How do I print from the command line in Ubuntu?
Use lpr filename.pdf to print a file, lpstat -p to list available printers, and lpq to check the print queue. To specify a printer: lpr -P PrinterName filename.pdf.
Ubuntu detects my wireless printer but can't print — why?
The most common cause is firewall blocking port 631 (IPP) or 9100 (raw printing). Check with sudo ufw status. If the firewall is active, allow printing: sudo ufw allow 631/tcp. Also verify the printer and Ubuntu are on the same subnet and VLAN.
Can I print to a Windows-shared printer from Ubuntu?
Yes. Install Samba client: sudo apt install samba-client. Then in CUPS, add a new printer using the SMB protocol: smb://WORKGROUP/COMPUTERNAME/PrinterShareName. You'll need the Windows user credentials that have printer access.
Still stuck? CloudHouse Technologies offers pay-per-ticket remote support for Ubuntu printer configuration — our Linux experts can diagnose driver conflicts, CUPS errors, and network printer issues in a single session.
