diff --git a/contrib/cirrus/win-installer-install.ps1 b/contrib/cirrus/win-installer-install.ps1
index f3fc4508d7..e102867d22 100644
--- a/contrib/cirrus/win-installer-install.ps1
+++ b/contrib/cirrus/win-installer-install.ps1
@@ -1,6 +1,25 @@
 # Update service is required for dotnet 3.5 (dep of wix)
 Set-Service -Name wuauserv -StartupType "Manual"
-choco install -y wixtoolset mingw golang archiver
-if ($LASTEXITCODE -ne 0) {
-    Exit 1
+function retryInstall {
+    param([Parameter(ValueFromRemainingArguments)] [string[]] $pkgs)
+
+    foreach ($pkg in $pkgs) {
+        for ($retries = 0; ; $retries++) {
+            if ($retries -gt 5) {
+                throw "Could not install package $pkg"
+            }
+
+            if ($pkg -match '(.[^\@]+)@(.+)') {
+                $pkg = @("--version", $Matches.2, $Matches.1)
+            }
+
+            choco install -y $pkg
+            if ($LASTEXITCODE -eq 0) {
+                break
+            }
+            Write-Output "Error installing, waiting before retry..."
+            Start-Sleep -Seconds 6
+        }
+    }
 }
+retryInstall wixtoolset mingw@11.2 golang archiver
diff --git a/contrib/cirrus/win-installer-main.ps1 b/contrib/cirrus/win-installer-main.ps1
index 64a94ee639..5f94f70626 100644
--- a/contrib/cirrus/win-installer-main.ps1
+++ b/contrib/cirrus/win-installer-main.ps1
@@ -1,7 +1,7 @@
  # Powershell doesn't exit after
  function CheckExit {
     if ($LASTEXITCODE -ne 0) {
-        Exit $LASTEXITCODE
+        throw "Exit code = $LASTEXITCODE"
     }
 }
 function DownloadFile {
@@ -50,11 +50,10 @@ $ret = Start-Process -Wait -PassThru ".\podman-${ENV:WIN_INST_VER}-dev-setup.exe
 if ($ret.ExitCode -ne 0) {
     Write-Host "Install failed, dumping log"
     Get-Content inst.log
-    Exit $ret.ExitCode
+    throw "Exit code is $($ret.ExitCode)"
 }
 if (! ((Test-Path -Path "C:\Program Files\RedHat\Podman\podman.exe") -and `
        (Test-Path -Path "C:\Program Files\RedHat\Podman\win-sshproxy.exe"))) {
-    Write-Host "Expected podman.exe and win-sshproxy.exe, one or both not present after install"
-    Exit 1
+    throw "Expected podman.exe and win-sshproxy.exe, one or both not present after install"
 }
 Write-Host "Installer verification successful!"