How to Stop a Print Job Stuck in Spooling Without Restarting the Service
🔍 WiseChecker

How to Stop a Print Job Stuck in Spooling Without Restarting the Service

Quick fix: Use PrintUI.dll to cancel a single stuck job by job ID without restarting the spooler. Open the print queue, note the offending job’s ID, then run rundll32 printui.dll,PrintUIEntry /Xs /n “PrinterName” status “Cancel” jobid <ID>. The remaining queue continues processing.

One print job is stuck in “Spooling” status. Other jobs queue behind it but won’t start. The classic fix — restart the Print Spooler service — works, but it kills every queued job from every user on the printer. For shared printers with multiple people lined up, that’s not acceptable. You need a way to remove just the bad job.

Symptom: A single print job stuck at “Spooling” status blocks the queue; restarting the spooler would wipe other users’ jobs.
Affects: Windows 11 with shared or network printers.
Fix time: 5 minutes.

ADVERTISEMENT

What “Spooling” status means

Print Spooler accepts a job from the application and writes it to disk under C:\Windows\System32\spool\PRINTERS\ as two files: an .SHD shadow file (job metadata) and an .SPL spool file (the print data). Once both files are complete, the spooler hands the job to the printer driver and the status changes from Spooling to Printing. If the application crashes mid-write, or the SHD/SPL files become corrupted, the job sticks at Spooling forever — the spooler keeps waiting for a completion signal that never arrives.

The fix is to remove the stuck job’s SHD/SPL pair, which the spooler treats as “job canceled” without affecting any other job.

Method 1: Cancel the job through the print queue UI

  1. Right-click the printer icon in the system tray (or open Settings → Bluetooth & devices → Printers & scanners and click Open print queue).
  2. Find the stuck job (status Spooling).
  3. Right-click the job and choose Cancel. If that does nothing within 30 seconds, try Pause first, then Cancel.
  4. Wait 60 seconds. The job should disappear.

Sometimes Cancel succeeds where Pause fails, and vice versa. Try both. This is the first attempt every time — it works in about 60% of cases without further intervention.

ADVERTISEMENT

Method 2: Manually delete the SHD/SPL files

If the queue UI ignores Cancel, delete the spool files directly.

  1. Open an elevated File Explorer window (run explorer.exe as Administrator) or use elevated Command Prompt.
  2. Navigate to C:\Windows\System32\spool\PRINTERS.
  3. Sort files by Date Modified. The newest .SHD + .SPL pair is your stuck job.
  4. Delete both files (.SHD and .SPL with the same numeric prefix).
  5. Return to the print queue UI. The stuck job is now gone. Other jobs proceed.

This works even when the spooler is in a bad state because it operates below the queue UI. Don’t delete files older than 5 minutes — those are still being printed.

Method 3: Use PowerShell to cancel by job ID

For scripting and remote management:

  1. Open PowerShell as Administrator.
  2. List print jobs on the affected printer:

    Get-PrintJob -PrinterName “YourPrinterName”
  3. Find the stuck job’s ID.
  4. Cancel just that job:

    Remove-PrintJob -PrinterName “YourPrinterName” -ID <jobID>
  5. Verify with Get-PrintJob -PrinterName “YourPrinterName” — the job is gone.

This is the cleanest path because it goes through the spooler API. The spooler updates everyone’s queue view consistently and other jobs continue to print.

How to verify the fix worked

  • The print queue UI no longer shows the stuck job.
  • The next queued job moves to status Printing within a minute.
  • Run Get-PrintJob -PrinterName “YourPrinter” — the stuck ID is absent.
  • The printer prints the remaining jobs normally.

If none of these work

If the job stays stuck even after deleting SHD/SPL files, the spooler service has cached the job in memory. You can clear it without restarting the service by sending it a refresh signal: open an elevated Command Prompt and run sc query Spooler, then net stop Spooler && net start Spooler — the brief restart cycle loses any non-spooled jobs but accepts new prints immediately. This is faster than a full restart and only affects whatever was in volatile state. For chronic spooler problems, check whether a third-party printer driver is generating malformed spool files — reinstall the driver from the manufacturer’s site rather than relying on Windows Update’s generic version.

Bottom line: Stuck spool jobs don’t require killing the whole spooler. The queue UI, manual SHD/SPL deletion, and PowerShell’s Remove-PrintJob all target one job at a time. Pick the one that matches your workflow.

ADVERTISEMENT