Fix ERROR_SERVICE_CANNOT_ACCEPT_CTRL (0x00000425) fast
Service won't accept stop/restart commands? This error means it's stuck in a transition state. Here's how to fix it, from quick to nuclear.
What's going on?
Error 0x00000425 (or ERROR_SERVICE_CANNOT_ACCEPT_CTRL) hits when you try to stop or restart a Windows service and it's already in a pending state — like SERVICE_STOP_PENDING or SERVICE_START_PENDING. The service literally can't accept your command because it's busy transitioning. I see this most often on Windows Server 2019 with SQL Server Agent or IIS W3SVC, but it happens on Windows 10 and 11 too.
Quick fix: Wait and retry (30 seconds)
Sounds dumb, but try again in 20 seconds. Services often finish their pending operation within a few seconds. If the service is just slow (not hung), this is all you need.
- Open Command Prompt as admin.
- Run
sc queryex(e.g.,sc queryex MSSQLSERVER). - Check the
STATEfield. If it saysSTOP_PENDINGorSTART_PENDING, wait 30 seconds and try the stop/restart again.
Moderate fix: Kill the service process (5 minutes)
The service is hung — it's not going to finish on its own. You need to force-kill the process behind it.
- Run
sc queryexagain. Note the PID listed underPID. - Kill that PID with
taskkill /f /pid. - Now start the service clean:
net start.
This works 9 times out of 10. If the PID is 0, the service is already stopped but stuck — skip to the advanced fix.
Advanced fix: Kill the svchost or restart the service host (15+ minutes)
Sometimes the service is hosted inside a svchost.exe group. Killing the service PID alone does nothing because the svchost process still holds the service state. You have to find the right svchost and restart it.
- Find the service's svchost
Runsc queryex. If the PID is 0, the service has already stopped but the svchost hasn't cleaned up. Runtasklist /svc /fi "SERVICES eqto see which svchost owns it." - Note the svchost PID
It's usually a 4-digit number like 1234. - Kill the svchost
taskkill /f /pid. Warning: this kills EVERY service in that host group. On a production server, you might drop DNS, DHCP, or other critical services. Check what else is in that group first withtasklist /svc /fi "PID eq." - Restart services manually
After the svchost dies, Windows restarts it automatically, but the services inside may not start. Usenet startfor each service that was in that group.
If the problem keeps coming back, the service's executable is buggy or the service is crashing on stop. Check the Application event log for service-specific errors. Also look at the service's dependencies — sometimes a dependent service is the one stuck.
Nuclear option: Reboot the machine
If nothing else works, reboot. On a server, schedule it during maintenance. On a desktop, just restart. This clears all pending service states. You won't see this error again until whatever caused it (a stuck I/O, a hung network share, a corrupt service DB) triggers it again.
Pro tip: Prevent the error
Common triggers for this error:
- Services with long-running stop actions (like SQL Server flushing logs). Set
WaitToKillServiceTimeoutin registry to 30 seconds (default is 20). - Services dependent on network shares that are offline. Check your service dependencies.
- Antivirus hooks on svchost. Temporarily disable AV to test.
Don't bother with sc triggerstart or disabling service recovery options — they rarely fix the immediate hang.
Bottom line: 90% of the time you just need to kill the service's process and restart. If that fails, kill its svchost. If that fails, reboot. Then fix the root cause. You're welcome.
Was this solution helpful?