I run CUPS printing on a number of multiuser Linux application servers. The systems are RHEL or CentOS version 4, 5 or 6. Starting the EL5, the CUPS print server defaults to an error policy that basically disables the printer when there's an error or interruption (USB cable disconnect, network error, paper jam, etc.). This is the ErrorPolicy directive in printer's stanza in the /etc/cups/printers.conf file.

<Printer backupZ4>
Info backupZ4
DeviceURI socket://backupZ4:9100
State Idle
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer

I normally change this field to ErrorPolicy retry-job manually in the config file or when I create the printer via the command line:

lpadmin -p backupZ4 -v socket://backupZ4:9100 -o printer-error-policy=retry-job -E 

When other users or vendors manage the print system, they often forget this change, which results in printers being hard disabled following a paper jam or other blips that need to be corrected with a cupsenable.

I'd like to know how to make retry-job the default ErrorPolicy in CUPS versus stop-printer.


There's a Feature Request that was Closed with Resolution to CUPS 1.3 for exactly this behavior. Link to the CUPS bug tracker: http://www.cups.org/str.php?L1871

I found no documentation to support this behavior in CUPS online documentation, but the documentation in the CUPS 1.5.2 source tarball I downloaded indicates that a global 'ErrorPolicy' declaration would work from the cupsd.conf config file.

Excerpt from the cupsd.conf documentation in Ubuntu CUPS 1.5.2:

CUPS 1.3/Mac OS X 10.5



     * ErrorPolicy abort-job
     * ErrorPolicy retry-job
     * ErrorPolicy stop-printer


   The ErrorPolicy directive defines the default policy that is used when a
   backend is unable to send a print job to the printer.

   The following values are supported:

     * abort-job - Abort the job and proceed with the next job in the queue
     * retry-job - Retry the job after waiting for N seconds; the cupsd.conf
       JobRetryInterval directive controls the value of N
     * retry-this-job - Retry the current job immediately and indefinitely.
     * stop-printer - Stop the printer and keep the job for future printing;
       this is the default value

(Note: Documentation Copyright of Apple Inc. and Reformatted to be readable.)

  • 1
    Yep, this finally made its way into RHEL/CentOS. I was able to make the change globally. Note that this doesn't override the settings in existing printers. A quick find/replace or sed takes care of that.
    – ewwhite
    Mar 5 '12 at 13:13
  • Any idea why the only option for printer classes is retry-this-job in CUPS webinterface? CUPS 2.1 / Ubuntu 16.04. Printers in those classes can have all error policies, but the class will only do retry-this-job?
    – Gnudiff
    Apr 3 '18 at 14:36
  • You're better off asking that as a question in its own right. I haven't touched CUPS since late 2013.
    – Magellan
    Apr 3 '18 at 18:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.