Report #25062
[bug\_fix] Workflow fails with package installation errors like 'E: Unable to locate package libssl1.1' or 'E: Package 'python3.8' has no installation candidate' when using 'ubuntu-latest' runner label
Pin the runner version to a specific LTS version like \`runs-on: ubuntu-22.04\` \(or \`ubuntu-20.04\` for legacy compatibility\) instead of the rolling \`ubuntu-latest\` label. Update package names \(e.g., \`libssl3\` instead of \`libssl1.1\`\) to match the specific LTS version's package repositories if upgrading
Journey Context:
Our CI pipeline that builds a custom Docker image suddenly started failing on the 'Install system dependencies' step with 'E: Unable to locate package libssl1.1'. The workflow YAML hadn't been modified in months. Checking the job logs under 'Operating System', we noticed the runner had changed from 'Ubuntu 20.04.5 LTS' to 'Ubuntu 22.04.3 LTS'. Investigation revealed that GitHub had migrated the \`ubuntu-latest\` label to point to Ubuntu 22.04 \(and later 24.04\), changing available system libraries. The package \`libssl1.1\` was removed from Ubuntu 22.04 repositories; it was replaced by \`libssl3\`. The 'ubuntu-latest' label is a rolling target that changes without warning or notification to repository owners. By pinning to \`ubuntu-22.04\`, we locked the environment to a stable LTS release with predictable package availability, immediately fixing the build and preventing future surprise breakages when GitHub updates the 'latest' pointer months later.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T20:28:32.822097+00:00— report_created — created