Printing is broken after upgrade

Ubuntu Version: 22.04, recently upgraded from 18.04

Desktop Environment: whatever the installed default is. gnome?

Problem Description:
Printing became suddenly unreliable after upgrade. Instead of printing the desired document, it seems to be printing out raw postscript (or ghostscript?); a line at the top of a first page something like:

%%@PJL ENTER LANGUAGE = PostScript %!PS-Adobe-3.0 %%Invocation: gs -q -dNOPAUSE…

and then seemingly unending blank pages until we power the printer down (and then every time we have to open it up and clear a jam because it was shut down mid-print). Before the upgrade it was rock-solid.

Relevant System Information:

Intel NUC with Ubuntu 22.04 (recently upgraded 18.04–>20.04–>22.04)

HP 2055 duplex laserjet, connected directly by USB cable.

What I’ve Tried:

It seems like maybe it helps if we download pdf and print from evince, not directly from browser; definitely the best chance is if the printer is powered off/on and the print queue cleared before each print, but still it’s a crapshoot with every print.

I don’t know how to troubleshoot CUPS. I hate all printers and printing with a burning passion and this isn’t helping.

But I’m comfortable with commandline, happy to check or upload log files or run commands or apt install or whatever.


@till-kamppeter We probably need you here for ground 0 support! Jokes aside, can you kindly look into this?

thx, any help is appreciated!

To be clear, it’s not an always problem, it’s like an 80% problem. If we keep turning things off/on, maybe rebooting, clearing out mid-print paper, eventually we can get a pdf to print. But this is no way to live

1 Like

It seems that some applications do not finish the print job cleanly, leaving the printer in an undefined state for the next job.

So could you try to print several jobs in a row from the Document Viewer (evince) or by directly sending from the command line (lp -d PRINTER FILE)?

Does the problem occur only if you are using a certain application (like Firefox for example)?

Could you upload your PPD file (/etc/cups/ppd/PRINTER.ppd)?

Put CUPS into debug mode:

$ cupsctl --debug-logging

Then print jobs (with the application which causes the problem) and after having a failing job, copy the file /var/log/cups/error_log and attach it here.

OK thanks, I will try that out and get back – probably by the weekend

For starters, here is everything in all the error_log files right now (although without having the logging mode escalated)

W [22/Jan/2025:00:00:00 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
E [22/Jan/2025:00:00:00 -0800] [Job 1657] Files have gone away.
W [23/Jan/2025:00:00:00 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
W [24/Jan/2025:00:00:00 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
W [25/Jan/2025:00:00:01 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
W [26/Jan/2025:00:00:02 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
W [27/Jan/2025:00:00:03 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
E [27/Jan/2025:20:07:49 -0800] [Client 518] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:07:51 -0800] [Client 522] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:08:12 -0800] [Client 525] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:08:14 -0800] [Client 529] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:08:35 -0800] [Client 589] Returning IPP client-error-bad-request for CUPS-Create-Local-Printer (ipp://localhost/printers/Hewlett_Packard_HP_LaserJet_P2055d_setternuc) from localhost.
E [27/Jan/2025:20:08:40 -0800] [Client 626] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:13:48 -0800] [Client 922] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:14:02 -0800] [Job 1912] Stopping unresponsive job.
E [27/Jan/2025:20:14:02 -0800] [Client 932] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:14:05 -0800] [Client 938] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:14:08 -0800] [Client 942] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:14:28 -0800] [Client 956] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:15:19 -0800] [Client 974] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
E [27/Jan/2025:20:15:28 -0800] [Client 1087] Returning IPP client-error-not-possible for CUPS-Create-Local-Printer (ipp://localhost/) from localhost.
W [28/Jan/2025:00:00:01 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
E [28/Jan/2025:00:00:01 -0800] [Job 1914] Unable to queue job for destination “Hewlett_Packard_HP_LaserJet_P2055d_setternuc”.
W [29/Jan/2025:00:00:01 -0800] Printer drivers are deprecated and will stop working in a future version of CUPS. See Remove print filters and printer driver support · Issue #4 · OpenPrinting/cups-sharing · GitHub
E [29/Jan/2025:00:00:01 -0800] [Job 1914] Files have gone away.

I see this about deprecated printer drivers; maybe I should start there? Can you point me to something that would give me the steps to do?

Also you asked for the /etc/cups/ppd/PRINTER.ppd

I looked in that directory, and there is Officejet-J4500-series-Fax.ppd and Officejet-J4500-series.ppd, but not one for the 2055 that I’m talking about. That J4500 is also connected to the same computer by USB, but it’s broken for printing. We only keep it around for scanning.

Could that other USB printer be causing interference somehow? Maybe it’s time to just chuck it (and rely instead on phone apps for scanning)

Is lack of a Laserjet-2055.ppd a problem?

bizarre, I am on my laptop (not the cups server), fetched those files from the cups server

And now I hear the fan spinning up, and top tells me cups-browsed is using 200% CPU – what up with that?

A queue without a PPD file is a raw queue. All data goes straight through to the printer without any filtering or conversion.

It looks like that somehow your PPD file went missing. Best is you remove your print queue and re-create it. This should create a new PPD file for you.

This a known bug and I have already fixed it and also created an SRU for Ubuntu Noble and Oracular. The Updates are already verified but not yet forwarded as official updates.

But you can got to the bug report and following the instructions for downloading the fixed package get the fix immediately.

Awesome, I will try that out, thanks!

Should I have a ppd on my other laptop from which I occasionally send print jobs? Or is it needed only on the cups server?

Usually cups-browsed auto-creates the queue on the client. Does it have implicitclass:... as device URI (See with lpstat -v)?

So on the client make sure you have a fixed cups-browsed, to avoid anything which could go wrong. After that, remove the queue on the client. cups-browsed should create a working one then.