{
  "id": "P033",
  "slug": "github-actions-runner-node-20-glibc-2-28-self-hosted-runner-upgrade-fixes-compatibility-check-ex",
  "status": "search-observed",
  "product": "GitHub Actions runner",
  "family": "Hosted runner runtime",
  "canonical_url": "https://gitdocs.org/fix/github-actions-runner-node-20-glibc-2-28-self-hosted-runner-upgrade-fixes-compatibility-check-ex",
  "query_alias_url": "https://gitdocs.org/q/github-actions-runner-node-20-glibc-2-28-self-hosted-runner-upgrade-fixes-compatibility-check-ex",
  "markdown_url": "https://gitdocs.org/fix/github-actions-runner-node-20-glibc-2-28-self-hosted-runner-upgrade-fixes-compatibility-check-ex.md",
  "json_url": "https://gitdocs.org/api/fixes/github-actions-runner-node-20-glibc-2-28-self-hosted-runner-upgrade-fixes-compatibility-check-ex.json",
  "canonical_query": "GitHub Actions runner Node 20 glibc 2.28 self-hosted runner upgrade fixes compatibility check exposes older OS glibc incompatibility",
  "observed_codex_queries": [
    "GitHub Actions runner Node 20 glibc 2.28 self-hosted runner upgrade fixes compatibility check exposes older OS glibc incompatibility",
    "GitHub Actions Node 20 glibc 2.28 self-hosted runner",
    "site:github.blog GitHub Actions Node20 runner glibc 2.28",
    "GitHub Actions Node 20 actions runner operating system glibc",
    "Node20 actions are only supported on self-hosted runner glibc 2.28",
    "GitHub Actions Node 20 older operating systems glibc 2.28 ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION",
    "site:github.blog/changelog GitHub Actions Node 20 self-hosted runner older OS",
    "https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/",
    "GitHub Actions Node 20 glibc older OS Node20 action failing GLIBC_2.28",
    "GitHub Actions Node 24 self-hosted runner glibc 2.28 runner version",
    "actions checkout v5 node24 runner version v2.327.1"
  ],
  "organic_dependency_search_count": 11,
  "affected_versions": "",
  "exact_errors": [],
  "diagnosis": "The action's host runtime and runner compatibility are supplied by the CI platform, not by the repository's package.json or source tree.",
  "before": "",
  "after": "",
  "verification": "Verifier executes on the target host matrix and checks a forward-compatible action/runtime change. Check the supported runner/runtime matrix, not just a local Node invocation.",
  "unsafe_fixes": [
    "Changing local code without checking the current external contract.",
    "Retrying the same install, build, or API call with no version/source change.",
    "Applying a broad unsafe bypass when a narrow compatibility fix is available."
  ],
  "last_verified_at": "2026-06-25",
  "neutral_validation": {
    "organic_search_observed": true,
    "organic_strict_pass": true,
    "no_web_counterfactual_run": false,
    "no_web_strict_pass": null,
    "search_necessity_under_fixture": null,
    "no_web_oracle_note": "Observed query evidence is separated from necessity proof; no-web and stale-contract counterfactuals should be tracked separately."
  },
  "source_trail": [
    {
      "url": "https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/",
      "label": "Deprecation of Node 20 on GitHub Actions runners"
    },
    {
      "url": "https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/",
      "label": "Official reference opened by Codex"
    }
  ],
  "source_github_links": []
}
