Universal Print troubleshooting - Debugging print errors

Overview

Some examples of issues that users may experience while using Universal Print.

  • End-users are unable to add a printer on their Windows device.
  • User is trying to print a document but there is nothing printing on the printer.
  • There is a problem with print options and/or quality of Print.

This article focuses on debugging issues where users are trying to print but nothing prints on the printer. The steps in this document are inline with stages of a print job.

Step 0: Universal Print portal - check if print job queued successfully?

A Print admin has centralized access to all printers via the Universal Print portal. The first thing a Print admin should check is – if the print job is even visible on the Universal Print portal. To do this,

  1. Open Universal Print portal and login with Print admin credentials.
  2. Go to the page that lists all Printers.
  3. Search for the respective printer and click on it.
  4. Go to the Jobs page of the printer and look at what’s happening with the jobs.

Scenario 1: Job is NOT in the Jobs view

If user printed recently (less than 10 days) and the corresponding print job is not even visible in the portal, then most likely the job failed on the user’s device itself.

Step 1-1: Check printer state and configuration in Universal Print

On Universal Print portal, start by checking the printer share to which user is trying to print.

  1. Go to Printer shares page
  2. Find the corresponding printer share and click on it's name.
  3. Go to Access control page of the printer share and ensure that the given user still has access.
  4. Go to Overview page of the printer share and click on Printer name.
  5. Printer's Status: If the status is Stopped then user may not be able to send jobs to the printer.
  6. Printer's Is accepting jobs: If the value is “No” then user may not be able to send jobs to the printer.

Step 1-2: Check user has eligible license to access Universal Print

Ensure user has one of the Universal Print eligible licenses

Step 1-3: Troubleshoot on the user’s Windows device

Start with basic checks like:

  1. Does the user's Windows device have access to the Internet?
  2. Is there any firewall blocking the client from accessing Universal Print URLs?
  3. Verify if the user’s Windows device is still connected to Microsoft Entra ID.

If all the configurations are fine, then you may want to collect a network trace. While collecting a network trace, ensure you remove the printer from user's device, re-add it and then print to it.

In the network trace, you can take a look for calls that may have failed. Typically the HTTPS response code or the Response section for the API calls can provide you the required information to know why print job upload to Universal Print is failing.

If the job’s network calls don’t show up in Fiddler as well, then ensure that Fiddler is configured appropriately. If it still doesn’t show up, then you may have to reach out to Microsoft Support. The Support team can help collect more logs from Windows spooler on user’s device.

Scenario 2: Job is in the Jobs view. Printer is registered via Universal Print connector.

If print job is in the Universal Print portal, then you can leverage the information on Jobs page to understand what may be happening with the print job. Here are some examples:

  • Status of the print job provides information about where job may be in its journey. Learn about different Print Job status values and how they map to print job journey.
  • Status code: If print job has Aborted status, then it may have an error code under the Status code column. Learn about Print Job error codes.
  • Other columns:
    • Created time and Upload time indicate that job has been queued in Universal Print service and notification for printer is ready. In case of a Connector, Universal Print service would have sent the notification to the Connector (which is communicating with Universal Print service on behalf of the printer). If Connector is busy processing another job on the same printer, then it would wait for the job to finish before taking further action on the notification.
    • Printer acknowledged time, Download time and Final time are updated by the Connector (or the printer). If these fields are empty, then we need to troubleshoot at the Connector.

Step 2-1: Identify print job to troubleshoot.

There may be multiple jobs on a given printer that need to be investigated. Sometimes though, the reported job may not be the one that has issues. It could be a job that may have been sent before the job.

To identify the print job to debug, go to Universal Print portal, and go to the corresponding printer’s Print Jobs page. Look for a job in this order:

  1. Check if the job reported by user has Status as Aborted. If it is aborted, then check the corresponding Status Code.
    • Most likely there will be a non-zero value. Click on the value under Status Code to look up for the error and corresponding mitigations.
    • If the Status Code is zero, then most like job was sent long time back and may have expired before Connector could print and update its status. Ask the user to print again to the same printer.
    • If required, investigate further as mentioned below in the document.
  2. If job's Status is Processing, then use this job’s Id to investigate further.
  3. If job's Status is Pending, then look for the latest job that still has Status as Processing.
  4. If there is no job in processing state, then pick the earliest Pending job.

Step 2-2: Identify the Connector associated to the Universal Print printer.

Before debugging on the Connector, Print admin may want to identify the Connector associated with the given printer. To do this,

  1. On Universal Print portal login with Print admin credentials and go to the specific Printer’s page.
  2. Within the printer’s page, go to the Connectors page. Here you can see the Connector name.
  3. Click on the Connector’s name to see more details.
  4. You can use the field Hostname to get to the device that is hosting the Connector.

To troubleshoot further Print admin will login to the Connector host (e.g. using Remote Desktop).

Step 2-3: Check Connector basics.

Ensure Connector is setup appropriately and has access to Universal Print service URLs. Connector troubleshooting checklist

If an organization uses a proxy, then carefully review the Connector prerequisites . Since the Connector process runs as a service, user-level auto proxy settings won't be used. Either access will have to be allowed explicitly for all Universal Print service endpoints, or use the configuration as per documentation.

Step 2-4: Is the printer a pull print queue or has secure release enabled from another print vendor?

Refer to the documentation on how to configure Connector for impersonating and passing on the user information for a given job to Windows spooler. Please note that passing user information on Connector works only in hybrid Microsoft Entra ID environments.

We recommend working with your print vendor to troubleshoot this further.

Step 2-4-1: Secure release and pending jobs

For printers with secure release, job may stay in waiting state before its retrieved by the user at the printer. Till user releases the print job, its Status will remain Processing. Other jobs on the same printer will continue to be Pending state.

Step 2-5: Print Management console - check if printer is online and printing

On the Connector host, launch Windows Print Management console and check for corresponding printer's status.

  1. Launch the Windows Print Management console on the Connector host.
  2. Look for the printer that may be having issues processing the print job.
  3. Check if printer is in an error state. If yes, this may be the reason for jobs to either get aborted or stuck in the cloud queue.
  4. Check queue length (number of jobs pending) on the printer. If queue length is large and not clearing up, then you may have to cancel all jobs on the queue and clear it up. This may abort the stuck job and open up the queue.
  5. Test the printer by sending a Test print page directly from Connector host to the printer.

Step 2-6: Task Manager on Connector host

Task Manager helps in looking at processes running on the Connector host and resource consumption by them.

  1. Launch the Windows Task Manager on the Connector host.
  2. Go to the Services tab.
  3. Look for services – Printfliterpipelinesvc and printisolationhost.exe. If any of instances of these services has high memory foot print (of more than a few MBs). This may indicate a memory leak by the printer’s driver. Select these processes and click on End Process. It will clear-up the resources and these services will automatically restart.
  4. Monitor the flow of new jobs on this printer.

Step 2-7: Event Viewer on Connector host

On the Connector itself, you can perform following task to see what happened with the job that is either in Processing state or has been Aborted.

Open the Windows Event Viewer on the Connector host,

  1. Check Connector events: Open Connector event log by going to "Application and Service Logs->Microsoft->Windows->PrintConnector -> Operational" node. Here you can see various steps print job took on the Connector, and at what stage the failure may have occurred. To check for the journey of job,
    1. Click on the Find option in right panel
    2. Put the job-id that you got from Universal Print portal
    3. Clicking on “Find Next” will help you navigate through the logs specific to this job.
    4. You can even look at other event around logs of this job to check some additional stuff that might be happening at the same time.
    5. Some interesting event IDs to look for in the event log are:
      • Event ID 10 or Task category “PrintSpooling”
      • Event ID 102 provides PrintJobSummary and detail about the job as received by Connector
      • Event ID 104 or Task category “TraceWarning”
      • Event ID 106 or Task category “TraceError”
  2. Check Windows Print spooler events: Stay on Event Viewer and open Print logs. Go to the “Windows Logs->Application” node.
    1. Click on Filter the Current Log and then click on Event Source dropdown, scroll down the list and select Universal Print. Click OK.
    2. If there is an error for the print job, you can possibly find more details of it under Print errors documentation.