The print spooler service (spoolsv.exe) can place a system power request on your machine whenever it believes a document is queued for a printer, and that request blocks sleep until the job finishes or is cleared. If a job is stuck against an offline or disconnected printer, the lock never releases, your desktop runs all night, and — more importantly from a security standpoint — it stays unlocked and available to anyone who walks past it. The fix is to find and purge the phantom job, adjust how the spooler behaves, and layer a screen-lock policy on top so an unattended machine is never an open door.
Confirming what is blocking sleep
Windows tracks every active power request, and you can enumerate them with two built-in commands run from an elevated PowerShell or Command Prompt:
powercfg /requests
powercfg /energy
The first shows live requests across DISPLAY, SYSTEM, AWAYMODE, and EXECUTION categories. An entry like [SERVICE] spoolsv.exe (Spooler) under SYSTEM is your smoking gun. The second runs a 60-second trace and reports energy-efficiency problems, including devices that refuse to enter selective suspend — useful because a misbehaving USB peripheral is another common sleep blocker.
It's also worth checking for scheduled wake timers, since a machine can be put to sleep and then woken again by something in the background, which looks identical from the outside to "never slept at all":
powercfg /waketimers
And if you want the full sleep-failure history rather than a live snapshot:
powercfg /sleepstudy
Why the spooler holds a lock with no visible jobs
You'd expect a sleep lock only while a document is actively printing, but the spooler's logic is less forgiving. A job sent to a printer that is offline, powered down, or no longer on the network can sit in the queue in an error state. From the spooler's perspective the job is still pending, so the power request stays active — even though nothing appears in the printer dialog if you filter to show only your default printer. Jobs can also linger after a driver crash, or be orphaned when a printer was removed while a job was still in flight.
Clearing the phantom job
The quickest test is to stop the spooler and see whether the request disappears:
net stop spooler
powercfg /requests
If the SYSTEM section goes quiet, you've confirmed the diagnosis. Now purge the queue instead of just restarting the service, which would simply re-arm the stuck job:
- Stop the service:
net stop spooler - Delete every file in
C:\Windows\System32\spool\PRINTERS— these .SHD and .SPL files are the queued job payloads. - Restart with
net start spooler. - Verify with
powercfg /requeststhat the Spooler entry is gone.
If the problem keeps returning, open Settings > Bluetooth & devices > Printers & scanners, open each printer's queue, and cancel any stuck entries. For a printer you no longer use, remove it entirely — a stale printer definition with an old port is a frequent source of recurring phantom jobs. Updating the printer driver can also help, since some drivers mishandle offline states and never signal job completion.
Don't overlook the USB angle
A powercfg /energy report flagging a USB device that won't enter selective suspend points at a second, independent sleep blocker. Video conferencing hardware and webcams are notorious for this: their drivers sometimes hold the USB bus awake, which in turn keeps the system awake. Steps worth trying, in order:
- Unplug the device and see whether sleep works. This is the fastest way to assign blame.
- In Device Manager, open the device's Power Management tab and uncheck Allow this device to wake the computer.
- Update the device's driver and firmware from the vendor's site.
It's entirely possible to have two problems at once — a spooler lock and a USB device holding the bus — so fix both before concluding you're done.
Decoupling security from sleep
However thorough your sleep troubleshooting is, sleeping is not the same as locking. A machine that sleeps on schedule but resumes to an unlocked desktop still fails the "walked away in a hurry" test. As a safety net that works regardless of power behavior:
- Set a screensaver (the Blank one is fine) with a short wait time, and check On resume, display logon screen.
- Or use Settings > Accounts > Sign-in options to require sign-in after the screen turns off, and set the screen to turn off after a few minutes of inactivity.
- Group Policy equivalent, on Pro editions: enable Password protect the screen saver under the screensaver policies.
This means that even while you chase the underlying power issue, an unattended machine locks itself within minutes.
Preventing a repeat
Make powercfg /requests part of your first-response checklist any time a Windows machine stops sleeping — it names the exact process or service holding each lock. Keep printer drivers current, delete printers you no longer use rather than leaving them dormant, and periodically clear spool\PRINTERS if you print to occasionally-offline network printers. Finally, remember that sleep problems are often cumulative: a spooler lock, a wake timer, and a stubborn USB device can each contribute a few all-nighters before you notice a pattern.
Frequently Asked Questions
How do I see exactly which process is preventing sleep?
Run powercfg /requests from an elevated prompt. Anything listed under SYSTEM is currently blocking sleep. Note that the report is only a live snapshot, so run it at a moment when the machine should be sleeping but isn't.
Why does the spooler block sleep when there are no print jobs visible?
A job stuck in an error state against an offline printer still counts as pending. It may not appear in your default view of the queue, but its files remain in C:\Windows\System32\spool\PRINTERS and keep the spooler's power request alive.
Can I just tell Windows that sleep matters more than printing?
There's no official "prioritize sleep" switch for the spooler. The practical equivalents are clearing the stuck queue, removing dead printer definitions, and updating drivers. Stopping the service temporarily releases the lock but doesn't survive a restart of the service or the machine.
Does stopping the print spooler permanently hurt anything?
Disabling it long-term means no local or network printing at all, and some applications complain when the service is missing. It's fine as a diagnostic step, but clearing the queue is the better lasting fix.
What's the difference between a power request and a wake timer?
A power request prevents the machine from entering sleep; a wake timer lets something exit sleep on a schedule. Check both with powercfg /requests and powercfg /waketimers, because a machine that sleeps briefly and is immediately woken looks the same as one that never sleeps.
Is there a quick way to make the machine secure while I troubleshoot?
Yes: enable a blank screensaver with a short timeout and "On resume, display logon screen," or configure sign-in to be required whenever the screen turns off. This locks the desktop within minutes of you walking away, independent of whether sleep is currently working.