Skip to content

[CI] iOS 16 simulator runtime downloads fail with connection reset by peer #26282

Description

@dalexsoto

Failure signature

During Provision system dependencies, the required iOS 16.0 simulator is unavailable through xcodebuild, so provisioning falls back to Apple's downloadable simulator index. The runtime download then fails with:

curl: (56) Recv failure: Connection reset by peer
Failed to download the iOS 16.0 simulator runtime.
The iOS 16.0 simulator is not installed, and it couldn't be downloaded.

Confirmed occurrences

PR / head Build attempt / job Worker
#26274 / c6514d837dbf5f878369ed1176979040e1d2ab93 14753211 attempt 1 - dotnettests_ios / Provision system dependencies AcesShared 61
#26274 / c6514d837dbf5f878369ed1176979040e1d2ab93 14753211 attempt 1 - monotouch_maccatalyst / Provision system dependencies AcesShared 73
#26279 / 84d989d3c2e6b0423d061fa59431d104157c895d 14753669 attempt 1 - interdependent-binding-projects / Provision system dependencies AcesShared 103

Total: 3 jobs across 2 distinct monitored PRs.

First observed: 2026-07-24 00:07 UTC. Latest observed: 2026-07-24 01:04 UTC.

Classification and impact

This is a CI infrastructure/network failure, not a source build or test failure:

  • It reproduces on unrelated PRs and three different workers.
  • The failure occurs before repository tests start.
  • Later missing TestSummary, HtmlReport, and drop artifacts are cascading errors caused by provisioning not completing.

Investigation performed

  • Inspected each Azure timeline and selected the first failed task in each job.
  • Verified the exact simulator asset and normalized curl error in the provisioning task logs.
  • Searched all open and closed dotnet/macios issues using the exact exception, simulator runtime name, task name, and downloadable-index fallback; no matching issue existed.
  • Kept this separate from Xcode archive transport failures because the affected asset and provisioning phase differ.

Retry status and workaround

Both affected builds are still active, so no retry has been submitted. Once each run is terminal, refresh the PR head and mergeability, reconcile retry budgets, confirm no equivalent attempt is active, then rerun failed jobs.

Azure task logs have limited retention.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci-postmortemCI post-mortem analysis: flaky tests, infrastructure failures, shared regressionscopilottestsAnything related to tests

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions