Alma 10 google-chrome-stable can't print certain pdfs

Hi,

I’ve got users who apparently only want to print pdfs all day and only want to do so through the built in google-chrome pdf viewer.

Chrome is installed through the official fedora repo for chrome. I’ve also tried the flathub flatpak version of chrome with similar results.

I’m printing to an ipp queue on an almalinux 9.6 cups server. The server reports a PS error that unfortunately I don’t have access to right now.

I can’t tell if this is related to chrome or something to do with alma10.

I’ll gather more information and update this post so it’s more helpful, but for now I just wanted to post and see if anyone else has a similar experience.

Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: REQUEST localhost - - "POST /jobs HTTP/1.1" 200 144 Restart-Job successful-ok
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 178] Flushing write buffer.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 178] New state is HTTP_STATE_WAITING
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 178] Waiting for request.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Active clients, printing jobs, and dirty files", busy="Active clients and dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [CGI] cgiSetVariable: refresh_page="5;URL=https://cups.ad.ptsd50.org:631/printers/canon_ufr356_III_ipp_everywhere_print_queue"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [CGI] cgiSetVariable: TITLE="Jobs"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [CGI] cgiSetVariable: SERVER_NAME="cups.ad.ptsd50.org"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [CGI] cgiSetVariable: REMOTE_USER="lpadmin"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [CGI] cgiSetVariable: CUPS_VERSION="CUPS v2.3.3op2"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] CGI data ready to be sent.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 178] HTTP_STATE_WAITING Closing for error 32 (Broken pipe)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 178] Closing connection.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Active clients, printing jobs, and dirty files", busy="Active clients, printing jobs, and dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] con->http=0x563e1e4f2510
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_LENGTH, data_remaining=2147483647, response=(nil)(), pipe_pid=151610, file=17
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Waiting for CGI data.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Script header: Content-Type: text/html;charset=utf-8
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Script header:
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Sending status 200 for CGI.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] cupsdSendHeader: code=200, type="(null)", auth_type=0
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: PID 151610 (/usr/lib/cups/cgi-bin/jobs.cgi) exited with no errors.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] con->http=0x563e1e4f2510
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=151610, file=17
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Waiting for CGI data.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] CGI data ready to be sent.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] con->http=0x563e1e4f2510
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] cupsdWriteClient error=0, used=0, state=HTTP_STATE_POST_SEND, data_encoding=HTTP_ENCODING_CHUNKED, data_remaining=0, response=(nil)(), pipe_pid=151610, file=17
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Waiting for CGI data.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Sending 0-length chunk.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Flushing write buffer.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] New state is HTTP_STATE_WAITING
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Client 176] Waiting for request.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Printing jobs and dirty files", busy="Active clients, printing jobs, and dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Sending stdin for job...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] STATE: +connecting-to-device
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdMarkDirty(---J-)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Dirty files", busy="Printing jobs and dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused printer-state-changed event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Looking up \"CanonFF99AD.ad.ptsd50.org\"...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] pdftopdf: Last filter determined by the PPD: -; FINAL_CONTENT_TYPE: application/pdf => pdftopdf will log pages in page_log.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] /var/spool/cups/d03090-001: file is damaged
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdMarkDirty(---J-)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Dirty files", busy="Dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Set job-printer-state-message to "/var/spool/cups/d03090-001: file is damaged", current level=WARN
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] /var/spool/cups/d03090-001: can\'t find startxref
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdMarkDirty(---J-)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Dirty files", busy="Dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Set job-printer-state-message to "/var/spool/cups/d03090-001: can\'t find startxref", current level=WARN
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused job-progress event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused printer-state-changed event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] /var/spool/cups/d03090-001: Attempting to reconstruct cross-reference table
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdMarkDirty(---J-)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Dirty files", busy="Dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Set job-printer-state-message to "/var/spool/cups/d03090-001: Attempting to reconstruct cross-reference table", current level=WARN
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused job-progress event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused printer-state-changed event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] STATE: -connecting-to-device
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdMarkDirty(---J-)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Printing jobs and dirty files", busy="Dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused printer-state-changed event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] CanonFF99AD.ad.ptsd50.org=10.0.9.123
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] backendWaitLoop(snmp_fd=6, addr=0x5637483d6778, side_cb=0x56374770ac50)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] loadFilename failed: /var/spool/cups/d03090-001: unable to find trailer dictionary while recovering damaged file
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdMarkDirty(---J-)
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: cupsdSetBusyState: newbusy="Printing jobs and dirty files", busy="Printing jobs and dirty files"
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Set job-printer-state-message to "loadFilename failed: /var/spool/cups/d03090-001: unable to find trailer dictionary while recovering damaged file", current level=ERROR
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused job-progress event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused printer-state-changed event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] PID 151611 (/usr/lib/cups/filter/pdftopdf) stopped with status 1.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] PID 151612 (/usr/lib/cups/backend/ipp) exited with no errors.
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: canon_ufr356_III_ipp_everywhere_print_queue redacted 3090 [29/Aug/2025:08:50:50 -0700] total 0 - 10.0.15.174 2025-26 (2).pdf - -
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: Discarding unused job-state-changed event...
Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Job stopped due to filter error

It’s me I have a separate account at work. Here’s the error log from the cups server that the user is trying to print to. I don’t know where or what they were trying to print in this case but I suspect it’s from chrome again.

Is this related somehow to the cairo bug from december? Printing and Print Preview Errors from Some PDFs (some versions of pdftk, cairo, & xdvipdfmx) - Fedora Discussion

EDIT: I just went and tried using the system print dialogue in gnome to print to a pdf and I got a corrupted pdf. Printing from firefox however produced a correct PDF which seems to track with the issue linked above.

Hi jordanr,

To help narrow this down, could you please provide a bit more detail on the following points?

1 Is the problem only with specific PDFs, or does it affect all PDFs printed via Chrome?

2 If it’s only certain PDFs, can you share an example file (with any sensitive info redacted)?

3 What error message (or error code) does CUPS log when the print job fails?

4 If you can get the relevant log entry from /var/log/cups/error_log, that would be helpful.

5 Does printing the same PDF from another PDF viewer (e.g., Evince, Okular, Adobe Reader) work correctly?

6 This will help determine if it’s a Chrome rendering issue or a system-side (CUPS or driver) problem.

7 Are you using any special CUPS drivers, or is this a generic IPP Everywhere setup?

8 Sometimes driver compatibility issues cause PDF rendering errors.

What’s the AlmaLinux 10 client’s CUPS version?

(rpm -q cups or cupsd -v output would help.)

These details will help the community troubleshoot your issue more effectively.

  1. Specific PDFs
  2. I was never given access to any unfortunately. The user does not want to listen to me since I swapped windows 10 with alma 10 while they were gone and now this happened.
  3. Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] Set job-printer-state-message to "/var/spool/cups/d03090-001: file is damaged", current level=WARN Aug 29 08:50:50 cups.ad.ptsd50.org cupsd[151297]: [Job 3090] /var/spool/cups/d03090-001: can\'t find startxrefis the error message in cups
  4. Yes it does. Firefox and master pdf both print well
    6-7. The printer queues are using ipp everywhere.
    On the client the queue is configured like so
    lpadmin -p queue -E -v ipp://cups.ad.ptsd50.org/printers/queue -m everywhere
    On the alma 9.6 server they are configured like so
    lpadmin -p queue -E -v ipp://fqdn.ad.ptsd50.org/ipp/print -m everywhere

The 9.6 and 10 computers are up to date. They are running 2.3.3op2 and 2.4.10 respectively

I will also note that if you use lp -d queue any_pdf_ive_tried.pdf it will print just fine

With the above test of using firefox to print to pdf and then using the system print dialogue to print to pdf I’m fairly satisfied that is the version of cairo that ships with alma 10 that’s the issue.

I looked at the changelogs for the package on fedora 42 and alma 10

Here’s Alma 10’s cairo package

Here’s Fedora 42

I don’t know how to get information on Fedora’s “rhbz#2330100” or RHEL’s or RHEL-64018 but I wonder if the patch to fix printing PDFs never made it into this release?

The only thing I can do at home at this point is boot up a fedora 42 VM and see if I can reproduce the firefox print to pdf bug to confirm the issue is resolved on 42, but it’s 3:00 AM right now and I don’t want to do that right now.

Hi jordanr,

Your analysis is correct—this is a known cairo bug affecting PDF printing (“file is damaged”, “can’t find startxref”).
Fedora fixed it in cairo-1.18.2-2
but AlmaLinux 10 doesn’t include that patch yet.

https://bugzilla.redhat.com/show_bug.cgi?id=2330100

Until it’s fixed, printing from Firefox or using lp is a good workaround

You’re right—AlmaLinux won’t patch this on their own.
The fix needs to land in RHEL first, then AlmaLinux will follow.

I would report this bug directly to CentOS/RHEL via

to accelerate a potential fix …