criticalFoundationSymptom-first#minutes#billing#limit#throttled

GitHub Actions minutes limit reached - free tier exhausted

All new workflow runs immediately fail with 'Your GitHub Actions minutes have been used up'

Likely source:availabilityscaling

Focused incident mode — strips away everything but this runbook.

Symptoms

  • All new workflow runs immediately fail with 'Your GitHub Actions minutes have been used up'
  • Runs queue indefinitely with no runner picking them up
  • Workflow run shows 'Pending' then fails with billing message

GitHub Actions minutes reset on the first of each month. Linux runners are 1x, macOS is 10x, and Windows is 2x the minute multiplier.

Evidence to grab

Collect these artifacts before you change anything — they prove (or rule out) each cause.

  • Billing page usage

    gh api /orgs/<OWNER>/settings/billing/actions --jq '.total_minutes_used'
  • Run failure message

    gh run view <RUN_ID> --log-failed | grep -E 'minutes|billing|limit|exceeded'

Diagnostic flow

Run the steps in order, marking each claim confirmed or refuted. The evidence you gather feeds the ranked causes below.

Guided decision tree is ready.

Steps with commands, expected output, and pass/fail branches.

Ranked root causes

Evidence checklist

  • Billing API shows total_minutes_used > included_minutes
  • All repositories in the org are affected simultaneously

Confirm before fixing

gh api /orgs/<OWNER>/settings/billing/actions --jq '.total_minutes_used'
READ

Confirm minute usage

Fix

echo 'Upgrade plan at https://github.com/settings/billing'
READ

Upgrade the GitHub plan or wait for the billing cycle to reset

Resolution runbook

Apply from top to bottom after the cause is confirmed. Review every command before running it — risk tags are shown on each.

1
gh api /orgs/<OWNER>/settings/billing/actions --jq '.total_minutes_used'
READ

Confirm minutes are exhausted

2
echo 'Upgrade plan at https://github.com/settings/billing'
READ

Upgrade plan or wait for reset

Prevention

  • Use path filters to skip CI for docs-only or irrelevant changes.
  • Consolidate matrix jobs - test only critical combinations on every push.
  • Use 'concurrency' groups to cancel superseded runs and avoid wasted minutes.
  • Monitor usage weekly via the billing API and set budget alerts.

Commands marked READ CHANGE DESTRUCTIVE — never run DESTRUCTIVE commands against production data you cannot restore. Copy → verify → execute.