Skip to main content

VeeamBackupSvc Stuck Stopping or Won't Start (StopPending, Stuck Workers)

Field Detail
Audience T3
Version 1.0
Last Updated October 2026
Applies To Veeam B&R 13.1.1.18 BDRs
Source HALO 1179664

Signal

  • NinjaOne raises Veeam service down for VeeamBackupSvc.
  • The service shows StopPending and never reaches Stopped.
  • An upgrade run logs "VeeamBackupSvc still StopPending after 900 s" or "a maintenance worker is respawning faster than it can be cleared", ending with NEEDS A PERSON.

Never end the service while an upgrade is installing. If the scheduled task DTC-VeeamUpgrade-1146283-Installer is running, or a Veeam.Silent.Install process exists, leave it alone.

Step 1: see which pattern it is

Read-only, on the BDR:

Get-Service VeeamBackupSvc | Select-Object Name, Status
Get-CimInstance Win32_Process -Filter "Name='Veeam.Backup.Manager.exe'" | ForEach-Object {
  '{0}  PID {1}  running {2:n0} min' -f ([regex]::Match([string]$_.CommandLine,'START[A-Z]+').Value), $_.ProcessId, ((Get-Date) - $_.CreationDate).TotalMinutes
}
Get-ChildItem 'C:\ProgramData\Veeam\Backup' -Filter 'Svc.VeeamBackup*.log' -File | Sort-Object LastWriteTime -Desc | Select-Object -First 4 Name, LastWriteTime, @{n='MB';e={[math]::Round($_.Length/1MB)}}
What you see Pattern
StopPending, no workers listed, service logs rotating seconds apart A — the service is looping
One worker (STARTINFRARESCAN or STARTDISCOVER) running for hours or days B — a stuck maintenance worker

Pattern A: the service is looping

The service is stuck mid-shutdown, repeating one error thousands of times. This groups the last 3,000 log lines by message, so the loop stands out:

Get-Content 'C:\ProgramData\Veeam\Backup\Svc.VeeamBackup.log' -Tail 3000 |
  ForEach-Object { (($_ -replace '^\[[^\]]*\]\s*<\s*\d+>\s*','') -replace '\d+','#').Trim() } | Where-Object { $_ } |
  Group-Object | Sort-Object Count -Descending | Select-Object -First 5 Count, Name | Format-Table -AutoSize -Wrap

The known loop is [CAgentCloseExecuter] An error occurred during asynchronious agent closing with Safe handle has been closed (System.ObjectDisposedException). The service can never finish stopping on its own, and a reboot only resets it until the next stop. No Veeam KB covers it.

Fix: end the stuck process and start the service fresh. With no workers and no installer running, nothing is in flight.

$svc = Get-CimInstance Win32_Service -Filter "Name='VeeamBackupSvc'"
if ($svc.State -eq 'Stop Pending' -and $svc.ProcessId) { Stop-Process -Id $svc.ProcessId -Force; Start-Sleep -Seconds 15 }
Start-Service VeeamBackupSvc
Get-Service Veeam* | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' } | Start-Service

Then re-enable the jobs — a wedged service is exactly how a site goes dark. See Veeam Jobs All Disabled.

The upgrade script (v4.52 and later) does this recovery itself at the start of a run, on a failed stop, and in its exit guard. It never ends the service to push an install through. A BDR with this loop recovers its jobs but cannot upgrade, because the loop returns on every stop. Treat it as a Veeam support case.

Pattern B: a stuck maintenance worker

STARTINFRARESCAN is the infrastructure rescan; STARTDISCOVER is agent protection-group discovery. Killing the worker doesn't help, and neither does a reboot — Veeam starts a replacement, and it hangs on the same thing. It's waiting on one target that never answers: a decommissioned server still listed, a computer that's gone, or an unreachable repository path.

  1. Note the worker's command line from Step 1 — it identifies the protection group or session.
  2. List the logs written most recently, and read the end of the one the worker is writing. Its last lines usually name the machine or path it's waiting on:
    Get-ChildItem 'C:\ProgramData\Veeam\Backup' -Recurse -File -Filter *.log | Sort-Object LastWriteTime -Desc | Select-Object -First 8 LastWriteTime, FullName
    
  3. Remove or fix that target: take the dead computer out of the protection group, remove the stale managed server, or correct the repository path.
  4. The next worker then finishes normally, and the service stops cleanly.

Verify

VeeamBackupSvc stops and starts within a minute, the NinjaOne service alert clears, and every expected job is enabled.


Version Date Author Change
1.0 October 2026 Z. Boogher Initial release from the v13 upgrade (HALO 1179664).