# GitHub Actions のジョブが「Waiting for a runner」のまま始まらない：原因と対処法

> GitHub Actions のジョブが Waiting for a runner to pick up this job のまま始まらないのは、runs-on のラベルに合う空きランナーがないからです。ラベルの間違い、セルフホストランナーがオフラインか使用中、アカウントの同時実行数の上限のどれかです。Skipbox はヘルスチェックと復旧まで任せられるランナーで、月 6,000 円の定額、実行時間は無制限です。

「Waiting for a runner to pick up this job」は、そのジョブの `runs-on` のラベルをすべて持つ空きランナーがない、という意味です。原因は 3つのどれかです。ラベルがどのランナーにも合っていない。セルフホストランナーがオフラインか、ほかのジョブで使用中。アカウントの同時実行数の上限に達している。まず `runs-on` の行を、次に Settings → Actions → Runners を見てください。

毎週のようにセルフホストのマシンが落ちて待たされているなら、直すのはランナーの持ち方です。Skipbox は、いつでもそこにいる GitHub Actions のランナーです。アカウント専用のマシンを、ヘルスチェックと復旧まで Skipbox が面倒を見ます。料金は月 6,000 円の定額で、実行時間は無制限。移行は `runs-on: skipbox` の 1行です。

- ランナーのお守りが要らない。ジョブが終わるたびに Skipbox がマシンを確かめ、通らなければ作り直します
- Skipbox のジョブは GitHub ホストの同時実行数の上限に数えられず、GitHub の分数も使いません
- 4 vCPU を月 20,000分使うと、GitHub は 約 35,120 円、Skipbox は 6,000 円

**GitHub Actions を月額固定・使い放題に** Skipbox は、アカウント専用のマシンで GitHub Actions のジョブを動かします。何分動かしても月 6,000 円。ジョブが終わっても Docker のレイヤーと依存パッケージのキャッシュが残るので、次のジョブはすぐ始まります。

4 vCPU のランナーを月 20,000分 使うと、GitHub 約 35,120 円 → Skipbox 6,000 円。毎月 約 29,120 円お得。

移行は `runs-on: skipbox` に 1行書き換えるだけです。

[7日間無料で試す](https://app.skipbox.dev/sign-in?ref=g-github-actions-waiting-for-a-runner-ja)

## ジョブが待たされる理由

ジョブは、`runs-on` のラベルをすべて持つランナーで動きます。多い順に並べると、原因はこうです。

| 原因 | 見分け方 | 対処 |
|---|---|---|
| ラベルがどのランナーにも合っていない | 打ち間違いか、`ubuntu-20.04` のような廃止されたイメージ。GitHub は知らないラベルをエラーにせず、来ないランナーを待ち続けます | `runs-on` の行を直す |
| セルフホストランナーがオフライン | Settings → Actions → Runners で Offline と出る | マシンかサービスを起動し直す |
| セルフホストランナーが使用中 | Active と出る。ランナー 1つが動かせるのは 1ジョブ | 待つか、ランナーを増やす |
| ランナーがそのリポジトリから使えない | Organization では Idle なのに、リポジトリの一覧にない | ランナーグループにリポジトリを足す |
| アカウントの同時実行数の上限 | GitHub Free は 20、Pro は 40、Team は 60。動いているジョブが終わると、待っているジョブが始まる | 同時に動くジョブを減らすか、上限の外のランナーを使う |

セルフホストランナーを待っているジョブは、24時間でキャンセルされます。ラベルを間違えると、丸 1日、実行が開いたままになります。上限の数と増やし方は、[同時実行数の上限のガイド](https://skipbox.dev/ja/guides/github-actions-concurrency-limits)にまとめました。

## セルフホストランナーのジョブが queued のまま動かないとき

GitHub の[セルフホストランナーの監視とトラブルシューティング](https://docs.github.com/en/actions/how-tos/manage-runners/self-hosted-runners/monitor-and-troubleshoot)のページ（2026年11月14日に確認）に、状態とログの見方があります。確かめる順はこうです。

1. **状態を見る。** Settings → Actions → Runners に、ランナーの名前、ラベル、状態が並びます。Idle は GitHub につながって待機中、Active はジョブを実行中、Offline は GitHub につながっていません。
2. **Offline なら、マシンとサービス。** マシンが落ちているか、ランナーのアプリケーションが動いていないか、GitHub に届いていないかです。Linux なら `sudo journalctl -u actions.runner.<org>-<repo>.<runnerName>.service -f` でサービスのログを追えます。アプリケーションのログは、インストール先の `_diag` にあります。
3. **Idle なのに取らないなら、ラベルとグループ。** `runs-on` に書いたラベルを、そのランナーがすべて持っているか。Organization のランナーなら、ランナーグループがそのリポジトリを許可しているか。
4. **ランナーのバージョン。** ランナーのアプリケーションが古くなりすぎると、ジョブを処理できなくなります。自動更新を止めているなら、ここを疑います。

## 待ち時間は、人の時間

待たされるのは人です。プルリクエストが 20分キューに入っていれば、レビューが 20分遅れます。夜のうちにセルフホストランナーが落ちれば、だれかが起動し直すまで、朝のマージがすべて止まります。その「だれか」は、自分の仕事を止めて CI のマシンの面倒を見るエンジニアです。

セルフホストランナーを動かし続けるのは、終わらない仕事です。マシン、OS のパッチ、ランナーのアプリケーションの更新、Docker のイメージで埋まるディスク、前のジョブが次のジョブを壊さないための後片付け。

GitHub ホストランナーに戻せば、その仕事は分課金の請求に変わります。

| 月の実行時間（4 vCPU） | GitHub | Skipbox S | 毎月の差額 |
|---|---|---|---|
| 10,000分 | 約 16,140 円 | 6,000 円 | **約 10,140 円** |
| 20,000分 | 約 35,120 円 | 6,000 円 | **約 29,120 円** |
| 30,000分 | 約 54,110 円 | 6,000 円 | **約 48,110 円** |

GitHub の額は、GitHub Team に含まれる無料分を引いたあとの請求です。自分のチームの分数で計算するなら、[トップページの料金計算](https://skipbox.dev/?lang=ja&ref=g-github-actions-waiting-for-a-runner-ja#cost)に入れてください。

そして、実行が増えるほどどちらも悪くなります。AI のコーディングエージェントは時間を選ばずに push するので、ジョブが重なり、だれもランナーを見ていない時間に届きます。請求を抑えるために GitHub の予算を設定すれば、月の途中でジョブが止まります。これも待ち時間です。

## Skipbox が引き受けること

**落ちないランナー。** プランごとに、アカウント専用のマシンが付きます。マシンの用意、イメージの更新、ジョブごとの後片付け（ランナーの認証情報、プロセス、コンテナを消します）、ヘルスチェック、通らなかったときのクリーンなイメージからの作り直しまで、Skipbox が行います。チームのだれも、何も起動し直しません。2026年11月13日からは、チェックアウトしたコードと Cargo のビルド結果（`target/`）を専用のマシンに残し、次のジョブで使います。「毎回クリーン」なら、ジョブごとに新しいマシンで動きます。

**同時に動かす数は自分で決める。** GitHub から見ると Skipbox のジョブはセルフホストランナーのジョブなので、GitHub ホストの同時実行数の上限には数えられません。Skipbox で同時に動く数は、プランの vCPU で決まります。収まらないジョブは順番を待ち、前のジョブが終わるとすぐ始まります。待っているジョブの数と時間は、アカウントのページに出ます。もっと同時に動かすなら、プランを足します。

| プラン | マシン | 月額 |
|---|---|---|
| S | 4 vCPU・メモリ 16 GB | 6,000 円 |
| M | 8 vCPU・メモリ 16 GB | 12,000 円 |
| L | 16 vCPU・メモリ 32 GB | 23,000 円 |

**ジョブが短くなり、待ちも短くなる。** マシンには Docker のレイヤー、パッケージのキャッシュ、ツールがジョブのあとも残ります。準備にかかる時間が減り、ランナーが早く空きます。

**予算で止まらない。** 実行時間は無制限です。Skipbox のジョブは GitHub の分数を使わないので、GitHub の予算で止まることもありません。

## 移行は runs-on を 1行書き換えるだけ

```yaml
jobs:
  build:
    runs-on: skipbox # ubuntu-latest や self-hosted から書き換える
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test
```

1. Skipbox に GitHub でログインする
2. Skipbox の GitHub アプリを入れて、使うリポジトリを選ぶ
3. `runs-on` を書き換えて push する

Skipbox のジョブが始まらないときは、アカウントのページに、待っているジョブとして出るか、動かさなかった理由が出ます。ページにないジョブは、Skipbox に届いていません。ラベルのつづりと、アプリがそのリポジトリを使えるかを確かめてください。全部の場合は[ジョブが待機中のまま](https://docs.skipbox.dev/ja/job-queued)にあります。

## セキュリティ

- マシンはアカウントごとの専用です。ほかの会社のジョブと同じマシンで動くことはありません。
- ジョブが終わるたびに、ランナーの認証情報、プロセスとコンテナを消します。2026年11月13日からは、チェックアウトしたコードと Cargo のビルド結果（`target/`）を専用のマシンに残し、次のジョブで使います。「毎回クリーン」なら、ジョブごとに新しいマシンで動きます。
- 書き込み権限のない人のコード（フォークからのプルリクエストなど）は、使い捨ての新しいマシンで動きます。

くわしくは[ジョブの分離のしくみ](https://docs.skipbox.dev/ja/isolation)にあります。

## まず、いちばん待たされるジョブで試す

カード不要で、7日間かジョブの合計 3,000分まで無料です。いちばんよく待たされるジョブを `runs-on: skipbox` に替えて push してください。

## よくある質問

### GitHub Actions のジョブが Waiting for a runner のまま始まらない。原因と対処法は？

ジョブの runs-on のラベルをすべて持つ空きランナーがないのが原因です。ラベルがどのランナーにも合っていない（打ち間違い、ubuntu-20.04 のような廃止されたイメージ、セルフホストランナーがオフラインか、そのリポジトリから使えない）、合うランナーがすべて使用中、アカウントの同時実行数の上限に達している、のどれかです。まず runs-on の行を確かめ、次に Settings → Actions → Runners でランナーの状態を見てください。

### セルフホストランナーのジョブが queued のまま動かない。何を確認すればいい？

順に 4つです。Settings → Actions → Runners でランナーが Offline になっていないか（マシンかランナーのサービスが止まっています）。Active のままではないか（ランナー 1つが動かせるのは 1ジョブです）。ランナーのラベルが runs-on とすべて一致しているか。Organization のランナーなら、ランナーグループにそのリポジトリが入っているか。ランナーのアプリケーションが古すぎても、ジョブを受け取らなくなります。

### セルフホストランナーがすぐオフラインになるのはなぜ？

動かし続けるのが人の仕事だからです。マシン、サービス、ランナーのアプリケーションの更新、ディスクの空き。どれか 1つが止まると、だれかが気づくまでジョブは待ち続けます。Skipbox はマシンを代わりに動かし、ジョブが終わるたびにヘルスチェックをして、通らなければクリーンなイメージから作り直します。

### セルフホストランナーの運用を任せられるサービスはある？

あります。Skipbox は、アカウント専用のマシンで GitHub Actions のジョブを動かすサービスです。マシンの用意、イメージの更新、ジョブごとの後片付け、ヘルスチェックと復旧まで Skipbox が行います。料金は月 6,000 円からの定額で、実行時間は無制限。ジョブの runs-on を skipbox に書き換えるだけで移せます。

### ジョブはいつまで待機中のままでいられる？

セルフホストランナーを待っているジョブは、24時間でキャンセルされます。だからラベルを間違えたジョブは、すぐには失敗しません。丸 1日、実行を開いたままにします。

### 試すのにお金はかかる？

かかりません。カード不要で、7日間かジョブの合計 3,000分まで無料です。ジョブを 1つ runs-on: skipbox に書き換えて push してください。

2026-11-14 更新 · https://skipbox.dev/ja/guides/github-actions-waiting-for-a-runner
