-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Describe the bug
We were running a self-hosted runner using the official Docker image 2.235.0 (pinned in our runner Dockerfile). It was working fine until it suddenly stopped receiving messages and fails with an access/deprecation error. The latest available image we see is 2.238.0, but the pinned 2.235.0 stopped working without any prior warning.
To Reproduce
Steps to reproduce the behavior:
- Build / run a runner based on the official Docker image tagged 2.235.0 (example Dockerfile line: FROM ghcr.io/actions/runner:2.235.0).
- Register the runner and make it available to receive jobs.
- Observe the runner logs — the listener fails with an AccessDenied / deprecation error.
Expected behavior
A runner image pinned to 2.235.0 should continue to function (or there should be a clear, prior deprecation/retirement notice and migration instructions). If images are being force-deprecated, a documented deprecation schedule or clear communication would be expected so we can plan upgrades.
Runner Version and Platform
2.235.0
OS of the machine running the runner? OSX/Windows/Linux/...
- Docker container: Linux (built from official runner Dockerfile, multi-arch build with platforms linux/amd64 and linux/arm64)
What's not working?
The runner stops receiving messages and the listener logs the following error:
[RUNNER 2025-09-05 23:14:16Z ERR Listener] GitHub.DistributedTask.WebApi.AccessDeniedException: Runner version v2.325.0 is deprecated and cannot receive messages.
Job Log Output
If applicable, include the relevant part of the job / step log output here. All sensitive information should already be masked out, but please double-check before pasting here.
Relevant log snippet we observed:
[RUNNER 2025-09-05 23:14:16Z ERR Listener] GitHub.DistributedTask.WebApi.AccessDeniedException: Runner version v2.325.0 is deprecated and cannot receive messages.
Runner and Worker's Diagnostic Logs
If applicable, add relevant diagnostic log information. Logs are located in the runner's _diag
folder. The runner logs are prefixed with Runner_
and the worker logs are prefixed with Worker_
. Each job run correlates to a worker log. All sensitive information should already be masked out, but please double-check before pasting here.
Questions / clarification requested from maintainers
- Was the 2.235.0 image (or the runner version referenced in the error) intentionally deprecated/retired by the project? If so, is there a deprecation/retirement calendar or policy (how long images remain supported after release)?
- Is this behavior expected (i.e., forced deprecation) or is this a bug / accidental configuration on the server-side that caused older tags to be refused?
- Is there a recommended mitigation or workaround for pinned images (e.g., must we always track the latest tag, is there a support window, or must we rebuild from source)?
Thanks — this broke our production CI unexpectedly, so any guidance or confirmation would be appreciated.