Lesstep
GitHub Actions · Checked November 3, 2026

GitHub Actions: "The ubuntu-latest label will migrate to Ubuntu 26"

GitHub is moving the ubuntu-latest label from Ubuntu 24.04 to Ubuntu 26.04. Every job that asks for ubuntu-latest carries this notice in its annotations:

The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see https://github.com/actions/runner-images/issues/14748

The notice itself does nothing. What matters is that the move is already under way: it rolls out over several weeks from October 19 and is planned to be complete by November 19, 2026 (runner-images #14748). Until then, the same workflow can get 24.04 in one job and 26.04 in the next, and comments on that issue describe builds that started failing once a job landed on 26.04, with nothing changed in the repository. It concerns the x64 label; ubuntu-24.04-arm and ubuntu-slim are not in the list of affected images.

Which image did the job get

Open the job's "Set up job" step. The Runner Image group names it:

Runner Image
  Image: ubuntu-24.04
  Version: 20261025.353.1

On the new image it says ubuntu-26.04, and the Operating System group above it shows 26.04. Compare a failed job with the last one that passed before looking for anything else. A re-run can land on the other image, so a re-run that passes proves nothing until November 19.

What breaks

Java: the default is 25, and JDK 8 is gone

The image's tool list sets the default JDK to 25 on 26.04 (17 on 24.04) and installs 11, 17, 21 and 25, without 8 (toolset-2604.json in actions/runner-images, November 3). The table in the announcement still says 17; the image's own documentation says 25. Gradle can run on Java 25 only from 9.1.0 (Gradle's compatibility table), so a job that runs Gradle 8 or older without choosing a JDK fails while compiling the build script, with an error such as:

Unsupported class file major version 69

That includes flutter build apk, which runs the project's Android Gradle wrapper. Choose the JDK yourself, or move the wrapper to Gradle 9.1 or later:

- uses: actions/setup-java@v6
  with:
    distribution: temurin
    java-version: '17'

Since 17 is still installed on 26.04, one step also works: echo "JAVA_HOME=$JAVA_HOME_17_X64" >> "$GITHUB_ENV". JAVA_HOME_8_X64 is not set on 26.04.

Python: no 3.8 or 3.9, and only recent patch releases

actions/setup-python downloads a build made for the runner's exact Ubuntu version. On November 3 its list of builds had nothing for 26.04 in 3.8 or 3.9, and only the newest patch releases of the others: 3.10.20 to 3.10.22, 3.11.15 to 3.11.18, 3.12.13 to 3.12.16, 3.13.13 to 3.13.18 and 3.14.6 to 3.14.10 (actions/python-versions, versions-manifest.json). An older pin, such as 3.12.4 or a .python-version file with one, fails at setup with a message like this:

The version '3.9' with architecture 'x64' was not found for ubuntu 26.04.

Ask for the minor version ("3.12"), or keep the old versions on 24.04:

strategy:
  matrix:
    python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
    os: [ubuntu-latest]
    include:
      - python-version: "3.9"
        os: ubuntu-24.04
runs-on: ${{ matrix.os }}

Other changes reported so far

What to do

Azure Pipelines

The announcement lists Azure DevOps as affected too, with vmImage: ubuntu-latest. A comment on October 26 pointed out that Microsoft's page of hosted agents still showed ubuntu-latest as 24.04, but on November 2 a pipeline that names no vmImage ran on 26.04 and failed with permission errors (a comment on runner-images #14748). On 26.04 the agent's user is runner instead of vsts, so paths under its home directory change (runner-images #15028). vmImage: ubuntu-24.04 keeps the old image.

See which jobs failed 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 a job that started failing during the move stands out next to the ones that passed, 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).

GitHub and GitHub Actions are trademarks of GitHub, Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o.; Ubuntu is a trademark of Canonical Ltd. This page is not affiliated with, sponsored or endorsed by GitHub, Inc., JetBrains or Canonical.

More: "No space left on device" on a hosted runner · The "Node.js 20 is deprecated" warning · The macOS 14 image retirement · Re-running jobs with debug logging · GitHub Actions plugins for IntelliJ IDEA compared · 日本語