Feature
GitHub
GitHub Actions retires the macOS 14 hosted runner image on 2 November 2026; the macos-14, macos-14-large, and macos-14-xlarge labels stop working and jobs must move to macos-15 or macos-latest (macos-26).
left 2 Nov 2026
Quick answers
- Is it true that GitHub Actions retires the macOS 14 (macos-14) hosted runner image on 2 November 2026?
- Yes. GitHub has officially announced it, effective 2 Nov 2026. If any of your GitHub Actions workflows run on the macOS 14 hosted runner, they will stop working on 2 November 2026.
- When does it take effect?
- 2 Nov 2026. Verified against the vendor's own announcement.
- What should I use instead?
- Update the `runs-on:` key in every affected workflow to a supported macOS arm64 label: `macos-15` or `macos-15-xlarge` to stay on a specific pinned version, or `macos-latest` (currently macOS 26) / `macos-latest-xlarge` (macOS 26-xlarge) to track the current image.
What this means for you
If any of your GitHub Actions workflows run on the macOS 14 hosted runner, they will stop working on 2 November 2026. GitHub is retiring the macOS 14 image and the three labels that select it — `macos-14`, `macos-14-large`, and `macos-14-xlarge`. Jobs that still target those labels after the retirement will fail to find a runner. Note that `macos-14` has been the resolved target of `macos-latest` in the recent past, but `macos-latest` now points at macOS 26, so pipelines pinned explicitly to `macos-14` are the ones at risk, not those on `macos-latest`. To raise awareness ahead of the removal, GitHub is running eight scheduled brownout windows between 5 and 31 October 2026, during which macOS 14 jobs temporarily fail before the permanent retirement.
Where to go
Update the `runs-on:` key in every affected workflow to a supported macOS arm64 label: `macos-15` or `macos-15-xlarge` to stay on a specific pinned version, or `macos-latest` (currently macOS 26) / `macos-latest-xlarge` (macOS 26-xlarge) to track the current image. Search your `.github/workflows` for `macos-14`, `macos-14-large`, and `macos-14-xlarge`. Re-test the build on the new image before the date — major macOS runner bumps routinely change the default Xcode version, bundled toolchains, and SDK paths, so a passing macOS 14 job is not guaranteed to pass on macOS 15 or 26 without adjustment (for example pinning the Xcode version with `xcode-select` if your build depends on a specific one).
- macos-15 / macos-15-xlarge — pinned macOS 15 arm64 runner images
- macos-latest (macOS 26) / macos-latest-xlarge (macOS 26-xlarge) — current GitHub-hosted macOS runners
GitHub is retiring the macOS 14 hosted runner image for GitHub Actions on 2 November 2026. Per the official changelog post, the three labels that select the image — macos-14, macos-14-large, and macos-14-xlarge — stop working on that date, and jobs still targeting them will fail to find a runner.
Who this affects
Any workflow whose runs-on: key is pinned to one of the three macOS 14 labels. Pipelines on macos-latest are not directly affected — that label now resolves to macOS 26, not macOS 14 — so the exposure is specifically workflows that hard-coded macos-14. In a large organization that tends to be the CI for native macOS and iOS apps, Swift/Objective-C builds, Electron and React Native packaging, and anything that signs or notarizes macOS artifacts.
The brownouts come first
Before the permanent removal, GitHub is running eight scheduled brownout windows between 5 and 31 October 2026, when macOS 14 jobs temporarily fail. These are deliberate — they surface the dependency in your Actions logs ahead of time, so a run that fails during an October brownout is a preview of 2 November, not an outage to wait out.
What to do
Change runs-on: to a supported arm64 macOS label:
macos-15/macos-15-xlarge— stay on a specific pinned version.macos-latest(macOS 26) /macos-latest-xlarge— track GitHub’s current image.
Search your .github/workflows for all three retiring labels. Then re-test before the date: macOS runner bumps routinely change the default Xcode version, bundled SDKs, and toolchain paths, so a green macOS 14 build can break on macOS 15 or 26 until you adjust (commonly by pinning Xcode with xcode-select). The lastcall CLI flags the three labels wherever they appear in your workflow files.
Entry changelog
- — last reviewed.
- — Entry created from GitHub's official changelog post (published 1 October 2026). The retirement date (2 November 2026), the three affected labels (macos-14, macos-14-large, macos-14-xlarge), the supported replacement labels (macos-15, macos-15-xlarge, macos-latest/macOS 26, macos-latest-xlarge), and the 5–31 October brownout windows are taken directly from the announcement; no inference. detect: fingerprints are the three concrete runner labels — literal strings a workflow YAML's `runs-on:` key contains — fingerprinted separately because the CLI's boundary matching treats `macos-14` and `macos-14-large` as distinct tokens. They target only the retiring labels, never the macos-15/macos-latest successors.
Put this countdown in your README
Building on GitHub? Drop this badge into a project’s README or docs — it shows the days left and
refreshes on its own every night from this page.
[](https://lastcall.dev/entries/github-actions-macos-14-runner-retirement) Spot an error or a changed date? Tell us and it’s corrected the same night.