arc-runner-troubleshooting

Diagnose ARC runner issues on Rackspace Spot Kubernetes with remediation steps.

Updated Sep 23, 2025
One-click install
npx skills add https://github.com/Matchpoint-AI/matchpoint-github-runners-helm --skill arc-runner-troubleshooting
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: arc-runner-troubleshooting
Source: https://github.com/Matchpoint-AI/matchpoint-github-runners-helm/tree/main/.claude/skills/arc-runner-troubleshooting
Command: npx skills add https://github.com/Matchpoint-AI/matchpoint-github-runners-helm --skill arc-runner-troubleshooting

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Self-hosted GitHub Actions runners (ARC) on Kubernetes can suffer from stuck jobs, scaling issues, and configuration mismatches, leading to CI/CD bottlenecks and developer frustration. This Skill provides a structured approach to diagnose and resolve these critical issues.

Core Features & Use Cases

  • Empty Labels Diagnosis: Pinpoints the critical releaseName vs runnerScaleSetName mismatch causing runners to register with no labels.
  • Queued Job Resolution: Identifies and fixes cold-start delays due to minRunners: 0 configurations.
  • Cluster Access & Kubeconfig Fixes: Guides through resolving expired kubeconfig tokens and DNS failures.
  • Custom Runner Image Validation: Ensures the correct runner image with pre-installed tools is used.
  • Use Case: When your GitHub Actions workflows are stuck in a "queued" state for an extended period, activate this Skill to quickly identify if it's an empty label issue, a cold-start delay, or a cluster access problem, and get step-by-step instructions to fix it.

Quick Start

Use the arc-runner-troubleshooting skill to diagnose why GitHub Actions jobs are stuck in the 'queued' state for the 'project-beta-api' repository. Provide a checklist of steps to investigate and potential fixes.

Frequently Asked Questions about arc-runner-troubleshooting

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why are my GitHub Actions jobs stuck in queued state on self-hosted ARC runners?

Queued jobs on ARC runners typically stem from three issues: empty runner labels due to releaseName vs runnerScaleSetName mismatch, cold-start delays from minRunners: 0 configuration, or cluster access failures. Diagnose by validating Helm release names, checking runner label registration, and verifying kubeconfig token expiration.

How do I fix empty labels on GitHub Actions runners in Kubernetes?

Empty labels occur when the Helm releaseName does not match the runnerScaleSetName in your ARC configuration. Verify both values align in your Helm values file, redeploy the release, and confirm runners register with expected labels using kubectl to inspect runner pool status.

What causes GitHub Actions runners to fail scaling on Kubernetes clusters?

Scaling faults in ARC result from misconfigured minRunners settings, expired kubeconfig tokens blocking cluster communication, DNS resolution failures, or incorrect custom runner images lacking required tools. Parse GitHub Actions runner data and validate cluster connectivity to identify the root cause.

How do I troubleshoot GitHub Actions runner registration problems on Rackspace Spot Kubernetes?

Runner registration issues stem from access failures, kubeconfig expiration, or pool label mismatches. Validate cluster access via kubectl commands, refresh kubeconfig tokens, verify runner pool configuration against Helm release names, and check for 'unknown' OS detection indicating image problems.

Can I use ARC troubleshooting to diagnose cold-start delays in CI/CD workflows?

Yes. Cold-start delays occur when minRunners is set to 0, forcing the cluster to provision runners on first job arrival. Adjust minRunner values to keep baseline runners warm, verify scaling policy configuration, and run verification checks to confirm runners are available before job submission.

What validation steps resolve GitHub Actions runner access and configuration mismatches?

Validate Helm releaseName against runnerScaleSetName, parse runner registration data to detect empty or 'unknown' labels, verify custom runner images contain preinstalled tools, test cluster kubeconfig access, and run DNS resolution checks to confirm connectivity across runner pools.