Service already running? Here's the real fix for 0X00000420
That service won't start because it's already running—but hidden. I'll show you the quick stop-and-restart, then how to find the duplicate instance.
The 30-second fix: Stop it properly
This error shows up when you try to start a service that's already running—but you can't see it in Services.msc. Happened to me last month with a client's SQL Server agent on Windows Server 2019. The service looked stopped, but starting it gave 0X00000420.
Here's what you do first:
- Open Services.msc (press Win+R, type services.msc, hit Enter).
- Find the service that's giving you the error. Right-click it and choose Stop.
- Wait 5 seconds. Then right-click again and choose Start.
That works maybe 40% of the time. If the service won't stop, move to the next step. Don't waste time rebooting—that's overkill for this.
The 5-minute fix: Kill it from the command line
When Services.msc won't stop it, the service is hanging on to a process that didn't close properly. I see this a lot with third-party services—like backup agents or VPN clients—that don't clean up after themselves.
Open an elevated Command Prompt (right-click Command Prompt, Run as Administrator). Then run:
sc query | find "SERVICE_NAME"
This lists all service names. Find yours—it'll be something like MyService or MyService_Svc. Then stop it with:
sc stop MyService
If that returns "The service has not been started" but you still get 0X00000420 when starting it, the service might be running under a different display name or a duplicate instance. Check with:
tasklist /svc | find "MyService"
That shows if the process is running with service host (svchost.exe). If you see a PID (process ID), kill it directly:
taskkill /F /PID 1234
Replace 1234 with the actual PID. Then try starting the service again from Services.msc.
The 15-minute fix: Find and remove the duplicate service
Sometimes there's a real duplicate—two service entries pointing to the same executable. I had a client whose print spooler had this issue after they installed a third-party print driver. Two spooler instances, but only one showed in Services.msc.
Open Registry Editor (regedit) as Administrator. Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Find your service name in the list. Expand it. Look for a DependencyOnService or ImagePath value that points to a different service. If you see something like MyService_Old or MyService_1, that's the duplicate.
Before deleting anything, export the key as a backup (right-click, Export). Then delete the duplicate key. Reboot the server. Start the service.
If that doesn't work, check Event Viewer under Windows Logs > System for warnings about "duplicate service" or "service control manager." Sometimes the event log tells you the exact service name causing the conflict.
One more thing: Check for orphaned processes
Had a case where a service kept crashing and the automatic restart created a zombie process. Use PowerShell to find all instances:
Get-CimInstance Win32_Service | Where-Object {$_.Name -like "*MyService*"}
If you see multiple entries with different ProcessId values, kill them all with Stop-Process -Id X -Force. Then start the service fresh.
That's it. No need to rebuild the server or reinstall the software. Just stop the hidden instance.
Was this solution helpful?