Skip to content

Runner deprecations: registration_deprecates_at is declared on the response but never returned #7162

Closed

Description

@Booyaka101

Description

The runner version end-of-life operations actions/get-runner-version-deprecation-for-repo
and actions/get-runner-version-deprecation-for-org declare registration_deprecates_at
on their 200 schema, a nullable date-time, "The date after which this runner version
can no longer register".

I have not been able to get it returned. Every version between 2.321.0 and 2.337.0
comes back with runner_version and runtime_deprecates_at only:

2.325.0   {"runner_version":"2.325.0","runtime_deprecates_at":"2025-09-11T13:58:34Z"}
2.328.0   {"runner_version":"2.328.0","runtime_deprecates_at":"2025-12-16T17:40:26Z"}
2.335.1   {"runner_version":"2.335.1","runtime_deprecates_at":"2026-09-24T15:30:55Z"}
2.337.0   {"runner_version":"2.337.0","runtime_deprecates_at":null}

2.325.0 and 2.328.0 are below the 2.329.0 floor that
the enforcement timeline
says "won't be able to register or reregister", so if any version has a registration
date it should be those. It is not an omit-when-null rule either, since 2.337.0
keeps the sibling key as an explicit null.

Only runner_version is required, so omitting it is legal against the description.
That is what makes it a client problem rather than a validation error: codegen yields
an optional nullable field that reads the same whether nothing populates it or this
version genuinely has no registration deadline, and those want opposite handling.

Expected

Either registration_deprecates_at is populated, or its description says it is not
currently populated, so clients know the absence is not a signal.

Activity

  1. reybard commented on Oct 22, 2026

    @reybard

    Thanks for catching this! registration_deprecates_at is now returned on every response. It's set to the registration enforcement date for versions below the 2.329.0 minimum (e.g. 2.328.0 → 2026-09-29T00:00:00Z) and explicit null for versions that can still register. The updated field descriptions will land in the next description sync. These public docs sync against dotcom on a cadence I'm not familiar with, but the changes should come through the next time that runs.

    % curl -s \
      -H "Authorization: Bearer $(gh auth token)" \
      -H "Accept: application/vnd.github+json" \
      -H "X-GitHub-Api-Version: 2022-11-28" \
      https://api.github.com/repos/bbq-beets/reybard-lab/actions/runners/deprecations/2.328.0
    {
      "runner_version": "2.328.0",
      "registration_deprecates_at": "2026-09-29T00:00:00Z",
      "runtime_deprecates_at": "2025-12-16T17:40:26Z"
    }
    % curl -s \
      -H "Authorization: Bearer $(gh auth token)" \
      -H "Accept: application/vnd.github+json" \
      -H "X-GitHub-Api-Version: 2022-11-28" \
      https://api.github.com/repos/bbq-beets/reybard-lab/actions/runners/deprecations/2.330.0
    {
      "runner_version": "2.330.0",
      "registration_deprecates_at": null,
      "runtime_deprecates_at": "2026-03-13T18:34:13Z"
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions