Skip to content
Latchkey

GitHub Actions macOS runner queue / slow provisioning

macOS-hosted capacity is scarcer than Linux, so macOS jobs frequently wait minutes in a queue before a runner is provisioned, even though they eventually run.

What this error means

Jobs on macos-latest or macos-14 sit in "Waiting for a runner to pick up this job..." far longer than Linux jobs before starting, inflating total pipeline time.

github-actions
Waiting for a runner to pick up this job...
(macos-latest provisioning delayed)

Common causes

Limited macOS pool capacity

macOS runner pools are smaller and in high demand, so queueing during busy periods is common.

Many parallel macOS jobs

A wide matrix of macOS jobs competes for the same scarce capacity, serializing pickups.

How to fix it

Reduce macOS demand

  1. Run only the jobs that truly need macOS on macOS; keep the rest on Linux.
  2. Narrow the macOS matrix to essential OS/version combinations.
  3. Cache heavy macOS steps so reruns are shorter.

Use warm managed capacity

Latchkey managed runners keep warm pools so jobs start without a cold-start queue, auto-retry transient provisioning failures, and run at roughly 69% less than GitHub-hosted runners.

How to prevent it

  • Keep macOS-only work isolated to the jobs that need it.
  • Avoid wide macOS matrices that fight for scarce capacity.
  • Track macOS queue time as a pipeline metric.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →