0X0000088B

Fix 0X0000088B: Service Control Busy on Windows Server

Server & Cloud Intermediate 👁 5 views 📅 Jun 18, 2026

This error pops up when you try to start, stop, or restart a Windows service and the SCM is stuck processing a previous request. I'll show you how to clear it.

The exact moment this error hits

You're managing a Windows Server 2019 or 2022 box. Maybe you opened services.msc and tried to restart the Spooler service after a bad print job hung. Or you ran net stop wuauserv from an admin prompt during a Windows Update cleanup. Instead of the usual status change, you get: 0X0000088B - The service control is busy. Flick. It's infuriating, especially when you're in a hurry.

I've seen this most often when a previous service request (start/stop/pause) didn't complete properly—maybe due to a hung service thread or a slow disk I/O. The Service Control Manager (SCM) is single-threaded for these control operations; it can only process one at a time. If something jammed the queue, new requests bounce back with this hex error.

Why this happens

The SCM (services.exe) manages service states. When you send a control request, it queues it. If a previous request is still pending—say a service is stuck in 'Stopping' state because a subprocess won't die—the SCM won't accept new controls until it resolves. 0X0000088B is literally Windows telling you: "I'm busy, try later." Rebooting fixes it, but that's brute force. Let's do it clean.

Step-by-step fix

  1. Check which service is stuck. Open an admin PowerShell and run:
    Get-Service | Where-Object {$_.Status -eq 'Stopped' -and $_.CanStop -eq $false}
    Look for services in Stopping or Starting state. That's your culprit.
  2. Kill the hung service process. Find the PID of the stuck service:
    Get-WmiObject -Class Win32_Service -Filter "Name='YourServiceName'" | Select-Object -ExpandProperty ProcessId
    Then force-stop it:
    Stop-Process -Id  -Force
    Be careful—only do this if the service is truly hung (check task manager, CPU, memory).
  3. Reset the SCM's internal state. Sometimes the SCM itself needs a nudge. Open CMD as admin and run:
    sc queryex state=all type=service
    Look for any service with STATE showing STOP_PENDING or START_PENDING for longer than a minute. If you find one, note its service name. Then force it to stop:
    sc stop "ServiceName"
    If that fails, use sc delete "ServiceName" (only as last resort—it removes the service entry).
  4. Flush the SCM pipe. In rare cases, the named pipe used for SCM communication hangs. Restart the SCM itself isn't possible (it's critical), but you can reset its pipe by stopping and starting the Remote Procedure Call (RPC) service—carefully. RPC has dependencies. Better alternative: reboot the RPC Endpoint Mapper (RpcEptMapper):
    sc stop RpcEptMapper & sc start RpcEptMapper
    This clears the pipe without taking down core services.
  5. Try your original operation again. Now attempt to start/stop the service you wanted before. Should work. If not, move to the next step.

If it still fails

A few things to check:

  • Permissions. Are you running as Administrator? This error can also pop if your token lacks SERVICE_QUERY_STATUS or SERVICE_STOP privileges. Use whoami /priv to verify.
  • Third-party security software. I've seen antivirus or endpoint protection hook into service control and cause delays. Temporarily disable it to test.
  • Corrupt SCM database. If the problem persists across reboots, check the registry hive at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services for that service. If the entry is malformed (e.g., missing ImagePath or Type), fix it by comparing to a known good server.
  • System File Corruption. Run sfc /scannow and DISM /Online /Cleanup-Image /RestoreHealth. Rare, but worth it.

If none of that works, a reboot is your nuclear option. But try the steps above first—I've saved dozens of servers from unnecessary restarts with the kill-switch trick.

Was this solution helpful?