Skip to content

GitHub Actions "Waiting for a runner to pick up this job" - Solutions ​

What are GitHub Actions Runners? ​

A runner is the machine or environment that executes jobs in a GitHub Actions workflow. Runners can be categorized into two types:

Runner Types

  • GitHub-hosted runner: Managed by GitHub with pre-configured environments
  • Self-hosted runner: Runs on your own infrastructure with custom configurations

When you see "Waiting for a runner to pick up this job," it means your workflow is queued but no runner is available to execute it.

Common Causes and Solutions ​

1. Unsupported or Deprecated Runner Labels ​

Using outdated or unsupported operating system labels is a frequent cause:

yaml
# ❌ Deprecated (as of 2025-04-01)
runs-on: ubuntu-20.04

# ✅ Use latest instead
runs-on: ubuntu-latest

WARNING

GitHub regularly deprecates older runner images. Check the GitHub Actions runner images repository for current supported versions.

2. Typographical Errors ​

Misspelled runner names will cause indefinite waiting:

yaml
# ❌ Common typos
runs-on: ubuntu-latest  # Extra space
runs-on: ubunut-latest  # Misspelled
runs-on: ubuntu-lates   # Missing character

# ✅ Correct syntax
runs-on: ubuntu-latest

3. Self-Hosted Runner Configuration Issues ​

For self-hosted runners, ensure:

  • The runner is properly registered with GitHub
  • The runner service is running
  • The repository has permission to use the runner
bash
# Restart self-hosted runner service
./svc.sh stop
./svc.sh start

4. Runner Availability and Capacity ​

TIP

GitHub-hosted runners have limited capacity, especially for free accounts. During peak times, you may experience delays.

5. YAML Syntax Errors ​

Incorrect indentation or syntax can prevent workflow processing:

yaml
# ❌ Incorrect indentation
jobs:
  build:
  runs-on: ubuntu-latest  # Wrong indentation level
    steps:
    - uses: actions/checkout@v3

# ✅ Correct indentation
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

6. Environment Restrictions ​

Environment protections can block job execution:

yaml
# ❌ May cause issues if environment has restrictions
environment: production

# ✅ Try without environment specification first
# environment: production

Quick Troubleshooting Steps ​

  1. Cancel and retry: Sometimes GitHub has temporary capacity issues
  2. Check GitHub Status: Visit githubstatus.com for platform issues
  3. Verify runner syntax: Double-check runs-on values
  4. Review permissions: Ensure repository has access to required runners

Best Practices ​

  • Always use ubuntu-latest or other -latest tags for future compatibility
  • Regularly review and update your workflow files
  • Monitor GitHub's announcements for runner changes
  • For critical workflows, consider self-hosted runners for guaranteed capacity
Self-Hosted Runner Setup

If using self-hosted runners:

  1. Follow the official setup guide
  2. Ensure proper networking between your runner and GitHub
  3. Monitor runner status in your repository's "Actions" → "Runners" tab

By following these guidelines, you can resolve most "Waiting for a runner" issues and ensure your GitHub Actions workflows run smoothly.