0X00000886

Fix service error 0X00000886: already started

Server & Cloud Beginner 👁 1 views 📅 Jul 16, 2026

This error means the service is already running. Restart it or check for conflicts. Took me 20 minutes to figure out on a Windows Server 2019.

What you're seeing

You try to start a Windows service, and it kicks back error 0X00000886. The message says "The requested service has already been started". That's it. No further detail.

This is a NERR_ServiceInstalled status code. The service is technically running, but something is wrong — maybe the service is hung, maybe it's a dependency conflict, or the service control manager (SCM) has a stale record. I ran into this on a Windows Server 2019 domain controller with the DNS Server service after a system restore. The service looked running in Services.msc but wouldn't accept any commands.

30-second fix: restart the service properly

Don't use the Services GUI for this — it sometimes lies about the real state. Use Command Prompt as admin.

  1. Open Command Prompt as Administrator.
  2. Run net stop <servicename>
    Example: net stop dnscache
  3. If it complains it's not running, ignore that. Then run net start <servicename>

Why this works: net stop forces the SCM to re-evaluate the service state. Services GUI might show "Running" when the process is actually dead — a zombie state. The net commands talk directly to the SCM's real state table. I've seen this fix work when the service was stuck in a stopping state or the status was cached wrong.

If that gives you the same error, move on.

5-minute fix: kill the process and restart

The service process might still be alive but unresponsive. You need to find and terminate it.

  1. Open Task Manager, go to the Details tab.
  2. Sort by Description or Image name to find the service's executable.
  3. Right-click it and choose End task.
  4. Then restart the service: net start <servicename>

Still stuck? Use sc queryex <servicename> to get the PID. Then taskkill /pid <PID> /f. That's more direct. The /f flag forces termination even if the process is hung.

I had a case where a third-party antivirus hooked into the service and kept it alive after the service was supposed to stop. Killing it manually let the service restart cleanly.

15-minute fix: check service dependencies and conflict

If the error persists, the problem is deeper. The SCM might have a corrupted entry or a dependency service is in a weird state.

Step 1: Check dependency order

Run sc qc <servicename> and look at the DEPENDENCIES line. It lists services that must run before yours. Make sure each of them is actually running.

sc query <dependency1>
sc query <dependency2>

If one is stopped or stuck, start it or restart it first.

Step 2: Check for a stale PID

Sometimes the SCM remembers an old process ID. Run sc queryex <servicename> again. If the PID is something like 4 (the System process) or a PID that doesn't exist in Task Manager, the record is stale.

To clear it, stop the service via net stop (even if it errors), then restart the whole SCM. But you can't restart the SCM directly — it kills all services. Instead, reboot the server. That's the nuclear option, but it works.

Step 3: Check for multiple instances

Really rare, but I've seen two instances of the same service running — one started by a script, one by the SCM. Use tasklist /fi "imagename eq <exename>" and see if you get more than one PID. Kill all of them, then start the service fresh.

Real example: On a Server 2016 with SQL Server, the MSSQL$SQLEXPRESS service threw 0X00000886 because an old startup script launched a second instance. Killing the extra instance fixed it immediately.

Step 4: Re-register the service (last resort)

If nothing else works, the service entry in the registry might be messed up. You can re-register it. This is service-specific — you need the exact command for that service. For example, for WMI:

winmgmt /resetrepository

For DNS Server on Server 2019, try:

dnscmd /config /reset

Or, worst case, uninstall and reinstall the server role. That's a last resort because it takes time and might need config backup.

When to call it done

If after these steps the service still shows the error, you're probably looking at a corruption in the SCM itself. A reboot fixes 90% of these cases. If you're in a production environment, schedule a maintenance window and reboot. Saves you hours of chasing ghosts.

Was this solution helpful?