Skip to content
Latchkey

ARC runner pod stuck "Pending" (Unschedulable) in CI

ARC created a runner pod but the scheduler cannot place it on any node. The pod sits in Pending, jobs wait, and the Events explain why: no node has enough resources or matches the selector.

What this error means

kubectl shows the runner pod in Pending with a FailedScheduling event citing Insufficient cpu, Insufficient memory, or an unmatched node selector or taint.

Events
0/4 nodes are available: 1 Insufficient cpu, 3 node(s) didn't match
Pod's node affinity/selector. preemption: 0/4 nodes are available.

Common causes

No node has enough CPU or memory

The runner pod requests more resources than any node can spare, so the scheduler leaves it Pending until capacity frees or a node is added.

Node selector or taints exclude every node

A nodeSelector, affinity, or missing toleration in the runner spec matches no available node.

How to fix it

Inspect the scheduling event and adjust

  1. Describe the Pending runner pod and read the FailedScheduling event.
  2. Lower the resource requests, or add capacity to the node pool.
  3. Correct the nodeSelector or add the toleration the nodes require.
Terminal
kubectl describe pod -n arc-runners <runner-pod> | \
  sed -n '/Events/,$p'

Set right-sized requests in the runner template

Tune the container resources in the scale set values so pods fit the node pool.

values.yaml
template:
  spec:
    containers:
      - name: runner
        resources:
          requests:
            cpu: "500m"
            memory: "1Gi"

How to prevent it

  • Right-size runner requests to the node pool capacity.
  • Keep node selectors and tolerations aligned with real node labels.
  • Enable cluster autoscaling for bursty CI workloads.

Frequently asked questions

What causes "runner pod "Pending" / Unschedulable"?
The runner pod requests more resources than any node can spare, so the scheduler leaves it Pending until capacity frees or a node is added.
How do I fix runner pod "Pending" / Unschedulable?
Inspect the scheduling event and adjust

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card