Skip to content

jobs stuck in pending on ephemeral runners #68

@savannahar68

Description

@savannahar68

Describe the bug
Using --ephemeral with --disableupdate causes jobs to get stuck in pending indefinitely. Runners register successfully on GCP but GitHub never dispatches jobs to them.

To Reproduce

  1. Deploy ephemeral self-hosted runners on GCP using this project
  2. (Ideally won't be able to repro this but) Wait for GitHub to bump their minimum required runner version (Is 2.332.0 is deprecated ? >> WRITE ERROR: An error occured: Runner version v2.332.0 is deprecated and cannot receive messages. actions/runner#4442)
  3. Trigger a workflow that uses these runners
  4. Jobs remain stuck in pending despite runners being created and registered

Expected behavior
Jobs should be picked up by the runners after they register. Removing --disableupdate from the config.sh call in gcloud_client.py fixes the issue — ephemeral runners are destroyed after each job anyway so there is no reason to block updates.

Additional context
The --disableupdate flag is passed on line 83 of gcloud_client.py makes sense for persistent runners where you want to control update timing. For ephemeral runners it provides no benefit and actively causes this failure mode when GitHub's service requires a newer runner version than what is baked into the GCP image.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions