CUPS' error_log FAQ
In which forum should I ask CUPS-related questions?
What is the error log?
This is a file where CUPS writes information about what it is doing.
Almost all printing problems can be diagnosed from the error log, so it is the first
place to look to start solving problems. To be useful, you much change the logging level.
If you are not using CUPS for printing, this information will not be useful
What is the name of the CUPS error log?
Where is the error_log?
It is usually located in /var/log/cups/
How come the error_log doesn't show much information?
In the default configuration, there is not enough logging information
to deal with printing failures. Change the LogLevel
How do I change the logging level?
You must edit a file cupsd.conf, usually located in
/etc/cups. Search for the line LogLevel and change it to
debug. Most printing problems can be solved with just debug.
Using debug2 is not helpful because it logs information not
necessarily related to printing. It also make it more difficult to read
the error log.
After enabling Logging, why are no more error reported to the error_log file?
You must restart cupsd. killall -HUP cupsd.
Why are there no references to ghostscript in the log?
If you have a non-postscript printer, you should see log messages
relating to the use of ghostscript. If there are non, you have failed to
install foomatic-rip or foomatic-gswrapper.
CUPS error_log message relating to ghostscript.
[06/Feb/2003:18:46:20 -0500] [Job 44] foomatic-gswrapper: \ gs '-dBATCH' '-dPARANOIDSAFER' '-dQUIET' '-dNOPAUSE' '-sDEVICE=ijs' \ '-sIjsServer=hpijs' '-sDeviceManufacturer=HEWLETT-PACKARD' \ '-sDeviceModel=DESKJET 540' '-dDEVICEWIDTHPOINTS=612' \ '-dDEVICEHEIGHTPOINTS=792' '-r300' \ '-sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=1' \ '-dIjsUseOutputFD' '-sOutputFile=| cat >&3' '/dev/fd/0' 3>&1 1>&2
The solution is to do the installation again, and pay special attention
to the script installation section.
cupsd: Child exited with status 1!
Try running cupsd as root.
Check permissions on the spool directory.
cupsdoprint: relocation error: cupsdoprint: undefined symbol: strlcpy
Upgrading to KDE3.1 (the ASPlinux packages).
Warning - hp_psc_950: Bad printcap entry - missing 'sd' or 'client'
If this error is from trying to print with lpr, you have probably installed
CUPS on top of another spooler (lpd,lpq, or lprng) and the lpr command is not
the CUPS version.
/usr/local/sbin/lpdomatic: unable to evaluate datablob
This problem can also happen when one uses LPRng and sets up the
/etc/printcap for an lpdomatic queue as described for stock LPD on
To solve the problem the /etc/printcap has to be set up as described for
LPRng on the mentioned page and the accounting information has to be
removed from the printer description file. Or one re-downloads the
printer description file.
This error is most often associated with HP printers.
If you see this warning in the /var/log/cups/error_log file or in any
status messages of the printer, this does not necessarily prevent the
printer from working. Many USB-connected Epson inkjets give this message
with CUPS as well, and they print without problems.
If your printer does not print, there is perhaps something else wrong.
Please follow the steps on the cups help page.
Here is the analysis of what is happening.
1. The error code 18 is returned by a system call to ioctl. This
is the true return value of ioctl (it hasn't been mangled by cups).
2. Error code 18 means media tray empty AND printer offline,
is not correct since the output printed. All that this code fragment does
is compare the returned status with a couple of error symbols and prints
an appropriate error message. It doesn't in any way affect what happens to
the job processing. The error code is actually a bitvector, so the code
should be using all "if" statements instead of the "else if" statements
when comparing to the bitmask symbols.
3. In the CUPS interface, just above this bogus error
message, is a message that states printer on line and ready. Something
other than this code fragment generated that message.
4. This code fragment is surrounded by compiler directives such that it
only compiles if being compiled for a GNU/Linux system because, as the comment
suggests, some Linux kernels don't like to query the USB while sending
data. Maybe my Linux kernel is not one of these? I wonder if I can just
comment this whole section out, recompile, and forget about it, letting
whatever gave me the correct message (item 3) do its thing. I will try
printing while there really is no paper in the media tray and see if this
gives me the correct error message. If so, I'll just remove this code
fragment and let life go on.
The error appears to be returned because the printer generates false
error messages when it is under heavy load (i.e. when it is printing).
It is unknown why the printer controller does this, but it appears
[Job 28] /usr/lib/cups/filter/foomatic-rip: No such file or directory
Looks like you need to install the filter at /usr/lib/cups/filter/foomatic-rip
Read the appropriate instructions on
"/usr/local/var/spool/cups/d00032-001" - Permission denied
This is almost always a permissions problem with the printer
spool directory, or with one of its subdirectories. Even though
cupsd runs with root user
privelages, it reads and writes the spool with a non-root UID
The UID and GID are configurable in cupsd.conf.
The permissions on the spool directory should look something like this.
drwxr-sr-x with a UID/GID matching those in cupsd.conf.
Denying user "" access to printer?
There is an option in /etc/cups/printers.conf called
AllowUser All, which may not work all the time. There are two workarounds. Try commenting out all lines that begin with AllowUser including the line AllowUser All. If that doesn't work, then the other workaround is
too allow each user access to the printer.
lpadmin -p printername -u allow:root To add many users at once,
lpadmin -p printername -u allow:root,username1,username2,...
/usr/bin/foo2zjs-wrapper: line 141: gs: command not found?
Your ghostscript be found. Please install ghostscript.
Unable to convert file 0 to printable format for job 4!
This is caused by not having the pstoraster
filter included in ESP GhostScript, or not having applied the GhostScript patches in
the pstoraster directory of the GNU GhostScript sources. You need to
install ESP GhostScript or the patch starting with CUPS 1.1.15.
It may also be necessary to compile ESP GhostScript against your current
version of CUPS.
Couldn't exec foomatic-gswrapper -q?
Make sure /usr/local/bin/foomatic-gswrapper has execution
permissions. If necessary, chmos a+rx /usr/local/bin/foomatic-gswrapper.
Error: /invalidfont in findfont?
Install GhostScript fonts.
YOU DO NOT HAVE YOUR FONTS INSTALLED!!?
Install GhostScript fonts.
This may be a permissions problem in the spool directory.
sh: line 1: hpijs: command not found
Your hpijs program cannot be found. Make sure hpijs exists,
and is executable.
Can't find initialization file gs_init.ps?
This is a ghostscript configuration problem. The gs executable file
can't find the ghostscript directory. it's possible that the path it's wrong.
Execute the command gs -?
and in the last lines of the output is the ghostscript directory path.
If the actual GhostScript path is different than the current path, you'll need
to change the path.
Alternatively, you can try moving the gs_init.ps file, or symlinking it.
It is usually located in /usr/share/ghostscript or /usr/local/share/ghostscript.
To find out exactly where the gs executable expects gs_init.ps to be,
try using strace or similar program.
Unknown device: ijs?
Your version of GhostScript does not have the "ijs" driver
compiled in. This driver is necessary for HPIJS to work.
cat: write error: Broken pipe?
It looks like the pnm2ppa is not
installed. See the "^^^^^" above) What does "which pnm2ppa" say?