Lesstep
GitHub Actions · macOS · Checked November 5, 2026

xcrun simctl list takes minutes on macos-15 and macos-26: the first call waits while simdiskimaged mounts and walks the simulator runtimes

On the GitHub-hosted macos-15 and macos-26 runners (Apple Silicon), the first xcrun simctl command of a job starts simdiskimaged, which mounts the simulator runtime images. On many VMs it also walks the whole file tree of one runtime, sometimes two or three, before it mounts the rest, and the command waits for that. The first xcrun simctl list -j devices then takes up to 2.5 minutes; later calls take under 2.5 seconds (runner-images #15247, with measurements from 30 jobs per image). The image maintainers have said they will look into it.

What it looks like

Nothing fails by itself; the first simulator step is just slow. It fails when something around that call has a short time limit. One project's setup script gives xcrun simctl list devices --json 30 seconds, and on hosted macOS runners it sometimes runs out (OpenCine #111):

TimeoutExpired(['xcrun', 'simctl', 'list', 'devices', '--json'], 30)

Every simulator suite that used that script could fail before it tested anything. Test runners and build tools that list or boot simulators make the same first call, so the wait can also land inside their own timeouts. To see it in your job, time the call twice:

- run: time xcrun simctl list -j devices > /dev/null
- run: time xcrun simctl list -j devices > /dev/null

The measurements

From the report, 30 jobs per row, on runners with 3 cores and 7 GB:

So it comes with CoreSimulator 1051, the version that the Xcode 16 and Xcode 26 releases install. Which runtime is walked varies from VM to VM: iOS, tvOS, watchOS and visionOS runtimes all appear. The Intel images were not tested.

What does not help

Keeping it out of your timeouts

Telling it apart

See failed jobs from IntelliJ IDEA

Pipeline Inbox for GitHub Actions Workflows, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, lists the runs of all your repositories in an IDE tool window, with their jobs and steps, so the step that timed out waiting for the simulators stands out, and your current branch's runs are in the status bar. Reading is free; re-running failed jobs, cancelling, running workflows and reviewing deployments are Pro (US$1.50 a month, with a 30-day trial).

Get it on JetBrains Marketplace

GitHub and GitHub Actions are trademarks of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o.; Apple, Xcode and macOS are trademarks of Apple Inc. This page is not affiliated with, sponsored or endorsed by any of them.

More: xcode-27 runner · macOS 14 retired · GitHub Actions plugins for IntelliJ IDEA compared · 日本語