When CircleCI ships a new self-hosted runner version, it currently rolls out automatically with no supported way to stay on, or roll back to, a known-good recent version without infrastructure surgery.
In May 2026 a broken release of the Windows self-hosted runner stopped working entirely. The auto-update meant every one of our runners picked it up. We had no clean way to revert. Working around it required an extreme hack to force a previous version onto our machines.
The cost was severe:
  1. Two full days of engineering effort to diagnose and build the workaround.
  2. Half a day of lost productivity for the entire engineering team while CI was down.
What we'd like:
  1. An easy, supported way to choose a specific recent runner version, including the immediately previous one.
  2. Bonus: control it via a CircleCI-side setting rather than runner config. If a bad release ships again, we flip the setting and recover with zero changes to our own infrastructure.
  3. A short window where the last few versions remain installable, so rollback is always possible.
  4. An announcement channel with a changelog so we are aware of runner changes.
Why a setting matters: During an outage, touching infrastructure is the slowest and riskiest path - it needs deploys, approvals, and access to machines that may already be mid-incident. A toggle in the CircleCI UI or API lets us recover in minutes.
This would turn a two-day, whole-team incident into a one-click rollback.