Error 1053: The service did not respond to the start or control request
A service has about 30 seconds to report back to the service control manager, and the process either failed before doing so or spent that time on startup work. A console application installed as a service never reports at all, which is why it runs perfectly from a command prompt and times out as a service.
Quick fix
Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.
# 1053 is only the timeout, the real error is in the event log
Get-WinEvent -LogName Application -MaxEvents 20 |
Where-Object { $_.LevelDisplayName -eq 'Error' } | Format-List TimeCreated, Message
# Run the binary interactively as the service account to see it fail
sc.exe qc MyService # binary path, account, dependencies
Get-Service MyService | Select-Object Name, StartType, Status
# A missing runtime, or a config path relative to the wrong directory,
# is the usual cause: services start in C:\Windows\System32
# .NET: BackgroundService.ExecuteAsync must not block StartAsync
# Node and Java wrappers (node-windows, procrun) report readiness for you
# Widen the timeout only once the slow startup is genuinely necessary
# HKLM\SYSTEM\CurrentControlSet\Control\ServicesPipeTimeout (DWORD, milliseconds)
# Then confirm it starts and stays up
Start-Service MyService; Get-Service MyService
How to diagnose Windows errors
Windows errors surface as numeric codes that mean little on their own, but the operating system keeps detailed logs that almost always contain the real cause. Two categories dominate developer machines: missing Visual C++ redistributables (a DLL-not-found error for a runtime the application assumed was present) and architecture or dependency mismatches (the 0xc000007b family, usually a 32-bit/64-bit mix).
If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.
- Read Event Viewer under Windows Logs → Application and System, filtered to the time of the failure. The numeric code in the dialog maps to a detailed entry there.
- For MSI failures, install with verbose logging:
msiexec /i package.msi /l*v install.log, then search the log for "Return value 3". The lines just above name the failing action. - For missing DLLs, install the matching Visual C++ Redistributable and confirm the architecture matches the application (x64 versus x86).
- Repair system corruption with
sfc /scannowfollowed byDISM /Online /Cleanup-Image /RestoreHealth, in that order. - For access-denied errors, check both NTFS permissions and whether the process needs elevation; UAC virtualisation can make writes appear to succeed while landing elsewhere.
Tools worth reaching for
Event Viewermsiexec /l*vsfc /scannowDISM /RestoreHealthProcess Monitor (ProcMon)
Authoritative references
Primary documentation for this error, worth reading before applying any fix in production.
Related Windows errors
- PowerShell: WARNING: Unable to resolve package sourceWindows PowerShell 5.1 runs on .NET Framework, which on older or unpatched systems still…
- Python was not found; run without arguments to install from the Microsoft StoreWindows ships app execution aliases for python.exe and python3.exe that open the Store, and…
- The trust relationship between this workstation and the primary domain failedThe machine account password the workstation holds no longer matches the one in Active…
- Windows Update: error 0x80070643A Windows Update (commonly a .NET or security update) failed to install, often due to a…
- Windows: 'x' is not recognized as an internal or external commandcmd searched PATH and found nothing by that name. An already open terminal keeps the…
- Windows: 0xc000007b application unable to start correctlyA 32/64-bit mismatch or corrupt/missing runtime DLLs prevented the application from starting…
- Windows: A required privilege is not held by the client (0x80070522)Creating a symbolic link needs SeCreateSymbolicLinkPrivilege, which standard accounts do not…
- Windows: Access is denied (error 5)A process attempted an operation without sufficient privileges, or a file/service is locked…
Browse other categories
- HTTP 494xx client errors, 5xx server errors, redirects, headers and protocol problems.
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Network 35Refused connections, timeouts, resets, MTU problems and port exhaustion.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- System 26Disk space, systemd units, file descriptors, OOM killer and scheduled jobs.
- Cloud 25IAM permissions, quotas, service limits and credential failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- TLS 24Untrusted authorities, expiry, hostname mismatch, chains and cipher negotiation.
Something missing or wrong?
This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.