Table of Contents


Azure Arc Update Manager – Timeout During Patch Assessment

This page documents a workaround to fix Azure Arc Update Manager assessments that hang or timeout, typically due to issues with the WindowsPatchExtension or agent state corruption.


🧩 Symptoms

  1. Update assessments time out in the Azure Portal.
  2. No recent update status from Arc-enabled servers.
  3. `WindowsPatchExtension` or `WindowsOsUpdateExtension` appear stuck or in a failed state.

💡 Workaround Steps

These steps reset the Arc update extension state by stopping services, removing cached extension data, and restarting the relevant components.


🔧 Manual Steps (Single Computer)

Run the following in a PowerShell session on the target computer (or via remote session with `Enter-PSSession`):

Stop-Service -name AutoAssessPatchesService
Stop-Process -Name "gc_arc_service" -Force
Stop-Process -Name "gc_extension_service" -Force
Stop-Process -Name "AutoAssessPatchService" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsPatchExtension" -Recurse -Force
azcmagent extension remove -n WindowsPatchExtension
azcmagent extension remove -n WindowsOsUpdateExtension
Start-Service -Name "GCArcService"
Start-Service -name "ExtensionService"

🔁 Bulk Fix (Multiple Computers)

You can run this from a Domain Controller or management server using PowerShell remoting. This assumes WinRM is enabled on target systems.

# List of computers
$computers = @("server01", "server02", "server03")
 
# Define the script block to execute on each remote computer
$scriptBlock = {
    try {
        Write-Host "[$env:COMPUTERNAME] Stopping services..." -ForegroundColor Cyan
 
        Stop-Service -Name AutoAssessPatchesService -ErrorAction SilentlyContinue
        Stop-Process -Name "gc_arc_service" -Force -ErrorAction SilentlyContinue
        Stop-Process -Name "gc_extension_service" -Force -ErrorAction SilentlyContinue
        Stop-Process -Name "AutoAssessPatchService" -Force -ErrorAction SilentlyContinue
 
        Write-Host "[$env:COMPUTERNAME] Removing extension files..." -ForegroundColor Cyan
        Remove-Item -Path "C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsPatchExtension" -Recurse -Force -ErrorAction SilentlyContinue
 
        Write-Host "[$env:COMPUTERNAME] Removing Arc extensions..." -ForegroundColor Cyan
        azcmagent extension remove -n WindowsPatchExtension | Out-Null
        azcmagent extension remove -n WindowsOsUpdateExtension | Out-Null
 
        Write-Host "[$env:COMPUTERNAME] Starting Arc services..." -ForegroundColor Cyan
        Start-Service -Name "GCArcService" -ErrorAction SilentlyContinue
        Start-Service -Name "ExtensionService" -ErrorAction SilentlyContinue
 
        Write-Host "[$env:COMPUTERNAME] Done." -ForegroundColor Green
    } catch {
        Write-Warning "[$env:COMPUTERNAME] Failed: $_"
    }
}
 
# Loop over each computer and invoke the script remotely
foreach ($computer in $computers) {
    Write-Host "Processing $computer..." -ForegroundColor Yellow
    Invoke-Command -ComputerName $computer -ScriptBlock $scriptBlock -ErrorAction Continue
}

✅ Optional

After running the workaround, you can reinstall the extension manually (or let Azure push it automatically):

azcmagent extension add --name WindowsPatchExtension

📝 Notes

  1. Only do this if you're sure assessments are hanging/stuck, not just delayed.
  2. Check Arc logs and `C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsPatchExtension\Status` for clues before running this.
  3. May help to restart `azcmagent` if issues persist.