microsoft / microsoft/aspire

[CI Failure] Flaky: PeerInstallProbeTests fallback-to-version test fails on Windows with generated batch script

Open
#20,147 0 comments 0 reactions 0 assignees View on GitHub
ci-failure-cause test-failure
Dominant language
C#
Stars
6.3k
Forks
991
Avg merge
2d 15h
Merged PRs (30d)
196

Description

## Build Information

Build: https://github.com/microsoft/aspire/actions/runs/35003412018
Build error leg or test failing: Tests / No-package tests (regular, Aspire.Cli.Tests, Cli, Cli, tests/Aspire.Cli.Tests/Aspire.Cli.Tests.cs... / Cli (windows-latest) / `Aspire.Cli.Tests.Acquisition.PeerInstallProbeTests.ProbeAsync_PeerEmitsArrayWithNonObjectFirstElement_FallsBackToVersion`
Pull request: #20133

## Classification Analysis

The test exercises CLI peer-install probe fallback logic via a dynamically generated Windows batch script, invoked through cmd.exe with findstr-based argument matching. This code path and test file are unrelated to the PR's changes (Kestrel certificate configuration in Aspire.Hosting). The failure indicates the CMD interpreter or process invocation did not behave as the test expected for the --version fallback branch, consistent with an environment/timing-sensitive issue on Windows CI runners rather than a code regression from the PR.

## Failure Information

Test output

Error:

Expected PeerProbeResult.Ok, got PeerProbeResult.Failed. Reason:
Peer produced no usable output (and --version fallback).

Stack Trace:
at Aspire.Cli.Tests.Acquisition.PeerInstallProbeTests.AssertProbeOk(PeerProbeResult result) in D:\a\aspire\aspire\tests\Aspire.Cli.Tests\Acquisition\PeerInstallProbeTests.cs:line 38
at Aspire.Cli.Tests.Acquisition.PeerInstallProbeTests.ProbeAsync_PeerEmitsArrayWithNonObjectFirstElement_FallsBackToVersion(String doctorStdout, String kind) in D:\a\aspire\aspire\tests\Aspire.Cli.Tests\Acquisition\PeerInstallProbeTests.cs:line 352
--- End of stack trace from previous location ---

Standard Output (sensitive values redacted):
Temporary workspace created at: C:\Users\runneradmin\AppData\Local\Temp\Aspire.Cli.Tests\Workspace\ttnjta5z.10l
[FakePeerScript] --- begin script at C:\Users\runneradmin\AppData\Local\Temp\Aspire.Cli.Tests\Workspace\ttnjta5z.10l\peer.cmd ---
@echo off
echo %* | findstr /C:"doctor" > nul
if not errorlevel 1 goto :doctor
echo %* | findstr /C:"--version" > nul
if not errorlevel 1 goto :version
exit /b 127
:doctor
echo ["string"]
exit /b 0
:version
echo 9.0.0
echo
exit /b 0

[FakePeerScript] --- end script at C:\Users\runneradmin\AppData\Local\Temp\Aspire.Cli.Tests\Workspace\ttnjta5z.10l\peer.cmd ---
Disposing temporary workspace at: C:\Users\runneradmin\AppData\Local\Temp\Aspire.Cli.Tests\Workspace\ttnjta5z.10l

## Description

Flaky: PeerInstallProbeTests fallback-to-version test fails on Windows with generated batch script

**Type**: flaky-test

## Occurrences

| Date | Build | Job | PR |
|------|-------|-----|----|
| 2026-09-15 | [35003412018](https://github.com/microsoft/aspire/actions/runs/35003412018) | Tests / No-package tests (regular, Aspire.Cli.Tests, Cli, Cli, tests/Aspire.Cli.Tests/Aspire.Cli.Tests.cs... / Cli (windows-latest) | #20133 |

Contributor guide

Open the contributing guide

Research direction

Start with tests/Aspire.Cli.Tests/Acquisition/PeerInstallProbeTests.cs, especially ProbeAsync_PeerEmitsArrayWithNonObjectFirstElement_FallsBackToVersion, and reproduce it on a Windows runner. Inspect the generated peer.cmd and its cmd.exe argument matching and --version fallback behavior; done means the named test reliably returns PeerProbeResult.Ok.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, shell
Domain
cli, operating-systems, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.