Why Print Queue Jobs Refuse to Clear on Windows 11
🔍 WiseChecker

Why Print Queue Jobs Refuse to Clear on Windows 11

Quick fix: Stop the Print Spooler service, delete every file in C:\Windows\System32\spool\PRINTERS, then start the Print Spooler — phantom “Deleting” jobs that won’t clear from the queue disappear within seconds.

You sent a print job, the printer hiccupped, and now the queue shows the document with status Deleting. You right-click → Cancel and nothing changes. You restart the Print Spooler from Services. The same phantom job reappears. The queue is reading corrupted job metadata from disk and rebuilding the same broken state every time the spooler starts.

Symptom: Print queue contains jobs stuck on Deleting, Spooling, or Printing that never finish, never cancel, and survive service restarts.
Affects: Windows 11 (and Windows 10) print spooler with stuck jobs.
Fix time: ~3 minutes.

ADVERTISEMENT

What causes this

Each print job persists as two files on disk: <jobid>.SHD (job metadata: owner, document name, settings) and <jobid>.SPL (the spooled print data ready for the printer). These live in C:\Windows\System32\spool\PRINTERS. When you cancel a job, the spooler tries to mark the SHD file for deletion and remove both. If the SHD or SPL is corrupted (failed write, abrupt service termination, antivirus quarantine), the spooler can’t complete the deletion — and rebuilds the queue from those broken files on every restart.

The fix is to manually delete the SHD/SPL files while the spooler is stopped (and therefore not holding handles on them), then restart the spooler so it sees an empty queue.

Method 1: Stop spooler, empty queue folder, start spooler

The reliable sequence. Always works.

  1. Press Win + R, type services.msc, press Enter.
  2. Scroll to Print Spooler. Right-click and choose Stop.
  3. Open File Explorer. Paste this path into the address bar and press Enter: C:\Windows\System32\spool\PRINTERS
  4. Select all files (Ctrl + A). Delete them (Shift + Delete to bypass Recycle Bin).
  5. The folder should now be empty. The folder itself stays.
  6. Return to Services. Right-click Print Spooler and choose Start.
  7. Open Print Management (or just go to Settings → Printers & scanners → your printer → Open print queue). The queue should be empty.

Test by printing a small document. The job should leave the queue within seconds.

ADVERTISEMENT

Method 2: Clear queue via PowerShell (scriptable)

Same operation, scriptable for help-desk runbooks.

  1. Open Terminal (Admin).
  2. Run the full sequence:
    Stop-Service -Name Spooler -Force
    Remove-Item -Path "C:\Windows\System32\spool\PRINTERS\*" -Force -Recurse
    Start-Service -Name Spooler
  3. Verify the spooler is running and the queue is empty:
    Get-Service Spooler | Format-Table Name, Status
    Get-PrintJob -PrinterName *

    First should show Running. Second should be empty.

  4. If Get-PrintJob errors with “PowerShell printing module not found”, you don’t have RSAT installed — that’s fine, the queue is still cleared.

Faster than the GUI route and identical in effect.

Method 3: Clear individual jobs from PowerShell

Use when you have multiple printers and want to clear only one’s queue without stopping the spooler service.

  1. Open Terminal (Admin).
  2. List jobs for a specific printer:
    Get-PrintJob -PrinterName "HP LaserJet"

    Replace with your printer name (use Get-Printer | Format-Table Name to list available names).

  3. Remove all jobs from one printer:
    Get-PrintJob -PrinterName "HP LaserJet" | Remove-PrintJob
  4. For a specific job by ID:
    Remove-PrintJob -PrinterName "HP LaserJet" -ID 5
  5. If Remove-PrintJob fails with “Access Denied” on stuck jobs, the job is locked at the SHD/SPL level — fall back to Method 1.

This is the surgical option. Best for office PCs with multiple printers where you don’t want to disrupt other queues.

How to verify the fix worked

  • Open the print queue from Settings → Printers & scanners → (your printer) → Open print queue. The queue is empty.
  • Run Get-PrintJob -PrinterName * in PowerShell. No output.
  • File Explorer in C:\Windows\System32\spool\PRINTERS shows no files.
  • Print a test page. The job appears briefly in the queue, then prints normally — the spooler is functioning.

If none of these work

If queue jobs reappear after clearing — or the spooler fails to start after the cleanup — the print driver or a print processor is the source. Open Print Management (run printmanagement.msc). Under Custom Filters → All Drivers, look for drivers showing errors or unexpected entries. Right-click and remove unused drivers. Under All Printers, remove any printer entries you don’t recognize — some malware adds fake printers that crash the spooler. For chronic stuck-queue issues, check the Event Viewer → Applications and Services Logs → Microsoft → Windows → PrintService → Operational. The most common culprits: 0xc1900208 print job rendering failed (corrupted driver — reinstall from manufacturer), or events from a third-party print monitor DLL (uninstall the corresponding software). For network printers, ensure the printer’s firmware is current — outdated firmware can cause job rendering failures that stick the queue.

Bottom line: Stuck print jobs survive service restarts because their files persist on disk — stop the spooler, delete the files, restart the spooler, and the queue is clean.

ADVERTISEMENT