Device Error States
Important
The modern print platform is Windows' preferred means of communicating with printers. We recommend that you use Microsoft's IPP inbox class driver, along with Print Support Apps (PSA), to customize the print experience in Windows 10 and 11 for printer device development.
For more information, see Modern print platform and the Print support app design guide.
Print devices and their drivers should recover gracefully from any error states that a user can encounter. It is pertinent to test all of your device's possible error states. Ensure that the device notifies the user of each error state, and that the device cancels the action, recovers, and restarts from each error state. First set up the error state, and then verify that the user is informed of the proper error state.
Common printer error states include:
Out of Paper
Print Door Open
Out of Toner
Paper Jam
Offline
Hot-Pluggable Bus Errors
Test each of these error states, both before and during print job operations, with the following procedure:
Set up the error state and then send a print job.
Verify that the job can be canceled, recovered from, and restarted.
Set up the error state to occur during a print job, and then again verify that the job can be canceled, recovered from, and restarted.
You should also perform the following additional test procedures for offline and hot-pluggable error states:
Offline
When the printer goes into the offline state, verify that the print job remains in the job queue until the device becomes ready for printing again. The job should then complete successfully.
Unplug the power from the printer during and before print jobs. Confirm that the printer reacquires the job queue and starts printing again. See more details in Power Management.
Hot-Pluggable Bus Errors
With the device connected, unload and load the device stack (for example, the USB Driver Stack). Send print jobs before, during, and after unloading the stack. For example, with USB devices connected, uninstall the USB root hub or host controller to which the device is connected.
Test unloading and loading the device stack with and without print jobs in progress. Verify that the job can be canceled, recovered from, and restarted.
Reload the device stack to allow the print job to recover gracefully.