GitLab:ジョブが1つも動かずに失敗したパイプライン
GitLab はパイプラインのジョブを作れないとき、ジョブ0件・失敗の理由・エラーの文をつけて、パイプラインを失敗として保存することがあります。パイプラインの画面には「Unable to run pipeline」とその文が出て、理由は次のような文になります(GitLab のソース app/presenters/ci/pipeline_presenter.rb と app/views/projects/pipelines/show.html.haml・2026年10月28日に読んだもの):
The pipeline failed due to the user not being verified. The pipeline size limit was exceeded. The pipeline job activity limit was exceeded. The pipeline failed due to an error on the CI/CD configuration file.
理由と、その裏の文
- 本人確認がまだ(
user_not_verified):文は「Identity verification is required in order to run CI jobs」。GitLab.com の Free プランで GitLab のランナーを使うには、先に本人確認が要ります。アカウントのリスクの点数によって、メール・電話番号・支払い方法のどれかです(GitLab の説明「パイプラインのエラーの調べ方」・「本人確認」)。カードの情報は GitLab が直接は保存せず、請求もしない、と GitLab は書いています。 - ジョブが多すぎる(
size_limit_exceeded・「The pipeline size limit was exceeded.」):文は「The number of jobs has exceeded the limit of」に上限の数が続き、「Try splitting the configuration with parent-child-pipelines」とリンクがつきます(lib/gitlab/ci/pipeline/quota/size.rb)。パイプラインを作るときと、新しいコミットのステータスを作るときに数えます。GitLab.com の上限は Free 500・試用 1,000・Premium 1,500・Ultimate 2,000、GitLab Self-Managed では既定で切れています(「パイプラインのジョブの最大数」・「GitLab.com の設定」)。 - 動いているパイプラインのジョブが多すぎる(
job_activity_limit_exceeded・「The pipeline job activity limit was exceeded.」):文は「Project exceeded the allowed number of jobs in active pipelines. Retry later.」(lib/gitlab/ci/pipeline/chain/limit/active_jobs.rb)。新しいパイプラインを作るたびに、そのプロジェクトの created・pending・running のパイプラインのジョブを数えます。GitLab.com では Free 500・試用 1,000・Premium 20,000・Ultimate 60,000、GitLab Self-Managed では既定で切れています(「動いているパイプラインのジョブの数」)。 - デプロイが多すぎる(
deployments_limit_exceeded・「The pipeline deployments limit was exceeded.」):文は「Pipeline has too many deployments! Requested」に数、「but the limit is」に上限が続きます。environmentのあるジョブがデプロイで、既定の上限は 500 です(「パイプラインのデプロイのジョブ」)。 - 設定の誤り(
config_error・「The pipeline failed due to an error on the CI/CD configuration file.」):文は、GitLab が設定の中で最初に見つけた誤りです。たとえばjobs:<job-name> config contains unknown keys: <key-name>。 - rules の評価に時間がかかりすぎた(
seed_timeout):「Pipeline creation timed out while evaluating rules.」GitLab は設定の中のすべてのジョブのrulesを、外されるジョブの分も評価し、長くかかりすぎるとやめます。文書ではこの理由は GitLab 19.6 からです。GitLab Self-Managed では、管理者がGITLAB_CI_PIPELINE_SEED_TIMEOUT_SECONDSで時間を変えられます(「パイプラインのエラーの調べ方」)。 - AI のエージェントが書いたコード(
composite_identity_forbidden):「This pipeline did not run because the code should be reviewed by a non-AI user first. Verify that all changes in this merge request are safe before running a new pipeline.」パイプラインの画面には Verify changes のボタンが出て、こうしたパイプラインを自動で動かすにはプロジェクトの CI/CD の設定へ、と案内します。 - 外部の検証(
external_validation_failure・「The external pipeline validation failed.」):GitLab Self-Managed で、管理者がEXTERNAL_VALIDATION_SERVICE_URLに置いたサービスが 406 を返しました(「外部のパイプラインの検証」)。 - ほか:「The project associated with this pipeline was deleted.」「Failed to create pipeline ref.」「The reason for the pipeline failure is unknown.」
GitLab が保存しない場合
rules がすべてのジョブを外したとき、workflow:rules がパイプラインを外したとき、git push -o ci.no_pipeline で push したとき、Gitaly が一時的に使えなかったときは、GitLab は失敗を数えるだけでパイプラインを保存しません。失敗したパイプラインとして出てくることはありません(「パイプラインの失敗の理由」)。API や Run pipeline で始めたパイプラインなら、その場で文が返ります。GitLab がパイプラインを断った理由へ。
API のどこに文があるか
- 理由:GraphQL のパイプラインの
failureReasonは、上の文そのもので、コードではありません。 - 文:GraphQL のパイプラインの
errorMessages(GitLab 17.7 以降)。 - もう入らない欄:GraphQL の
yamlErrorMessagesと REST API のyaml_errors(パイプライン1件と、マージリクエストのhead_pipeline)には、以前は設定の誤りが入っていました。GitLab 17.9 から(マージリクエスト 173759「Remove duplicate collection of errors」)、パイプラインのエラーを記録する所が設定の誤りをyaml_errorsに写さなくなり、GitLab は誤りをエラーの文としてだけ持ちます(lib/gitlab/ci/pipeline/chain/helpers.rb・2026年10月28日に読んだもの)。この欄だけを読む道具には、新しいパイプラインの誤りが見えません。
query {
project(fullPath: "group/project") {
pipeline(iid: "123") {
status
failureReason
errorMessages { nodes { content } }
}
}
}
どうするか
- 本人確認がまだ:画面の上の帯で Verify my account を選び、手順のとおりに確認します。それから新しいコミットを push するか、パイプラインを新しく動かします。ほかの道として GitLab は、有料のプラン・計算時間の買い足し・GitLab のランナーの代わりにプロジェクトかグループのランナー、を挙げています。
- ジョブが多すぎる:設定を親子のパイプラインに分けます。
- 動いているパイプラインのジョブが多すぎる:動いているパイプラインが終わるのを待つか、要らなくなったものを取り消してから、もう一度動かします。
- 設定の誤り:
.gitlab-ci.ymlを直します。先にパイプラインエディターか CI Lint で確かめられます。 - rules の評価に時間がかかりすぎた:設定のジョブを減らします。たとえば
rulesがいつも外すジョブを消す、parallel:matrixの組み合わせを減らす。
IntelliJ IDEA で GitLab のパイプラインを見るなら
Lesstep の Pipeline Inbox for GitLab CI は、JetBrains IDE(2024.1 以降)のプラグインです。GitLab のプロジェクトのパイプラインを、ジョブを段ごとに並べて一覧にします。ジョブが1つも動かずに失敗したパイプラインには、GitLab が返すエラーの文(errorMessages。「Identity verification is required in order to run CI jobs」や設定の誤り)を出し、文が無いときだけ理由を出します。1.0.21 より前は、GitLab 17.9 以降では理由(「The pipeline failed due to an error on the CI/CD configuration file.」など)しか出しませんでした。見るのは無料、再実行・取り消し・実行は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
GITLAB は GitLab Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitLab Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:GitLab のパイプラインやジョブの断り(400・403・409・429) · GitLab のジョブが詰まった・時間切れで落とされた · GitLab のジョブがリソース待ちで進まない · GitLab の「You are not authorized to run this manual job」 · GitLab のジョブのログが見えない・空 · GitLab 18.0 のあとの「This job does not have a trace.」 · GitLab の「Insufficient permissions to set pipeline variables」 · GitLab の 404「Group Not Found」 · JetBrains の IDE で GitLab のパイプラインを見る · English