Report #54953
[bug\_fix] Runner image ubuntu-latest suddenly causes build failures
Pin the runner to a specific Ubuntu LTS version \(e.g., \`runs-on: ubuntu-20.04\` or \`ubuntu-22.04\`\) instead of \`ubuntu-latest\`. Root cause: GitHub periodically migrates the \`ubuntu-latest\` label to newer LTS versions \(e.g., 20.04 -> 22.04 -> 24.04\), changing system libraries, default tool versions \(Python, Node, glibc, OpenSSL\), and kernel features that builds may depend on.
Journey Context:
A developer notices that scheduled CI builds that passed yesterday are now failing with errors like 'ImportError: libssl.so.1.1: cannot open shared object file: No such file or directory' or 'Python 3.6 was not found'. The workflow uses \`runs-on: ubuntu-latest\`. Checking the job logs, they see the runner image is now 'Ubuntu 22.04.3 LTS' whereas previous successful runs showed 'Ubuntu 20.04.6 LTS'. They search the GitHub Changelog and find the announcement that \`ubuntu-latest\` is migrating to 22.04. The debugging reveals that their specific dependency \(a binary wheel compiled against OpenSSL 1.1.1 or a specific Python version\) is incompatible with the new image. The fix is to explicitly pin \`runs-on: ubuntu-20.04\` to maintain stability while they update dependencies, or update dependencies to be compatible with 22.04 and pin to that version explicitly to prevent future drift.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T22:44:00.044461+00:00— report_created — created