Lesstep
GitLab・CI/CD のジョブ・2026年10月28日に確認

GitLab:ジョブが詰まった・時間切れで落とされた

ジョブが長いあいだ進まないと、GitLab はそのジョブを落とし、失敗の理由を記録します。しきい値はジョブの状態で決まります(GitLab の説明「ジョブのトラブルシューティング」・2026年10月28日に確認)。ジョブはその理由の文を添えて失敗します。たとえば:

The job was stuck in pending state with no matching runners available.
Check your runner tags or configuration

The job was running but showed no activity for an extended period.
Check your job script or try again

The running job exceeded the maximum execution time set for the job

どのしきい値で、どの理由になるか

文は GitLab のソース(app/presenters/commit_status_presenter.rb・2026年10月28日に読んだもの)のとおりです。古いジョブや、19.0 より前の GitLab では、これらが置き換えた理由が出ることがあります。stuck_or_timeout_failure「There has been a timeout failure or the job got stuck. Check your timeout limits or try again」(時間切れか、ジョブが詰まった。時間の上限を見るか、やり直す)は、GitLab 19.0 以降は過去の記録のためだけに残っています。job_execution_timeout「The script exceeded the maximum execution time set for the job」(スクリプトが最大の実行時間を超えた)は、GitLab 19.1 で再実行の値としては非推奨になりました(retry:when)。待たずにすぐ失敗したジョブは、これらで落とされたのではありません。

どの時間の上限が効くか

直す所

test:
  script: rspec
  timeout: 2h
  retry:
    max: 2
    when:
      - stuck_pending_no_matching_runners
      - no_updates_running
      - server_timeout_running

IntelliJ IDEA で GitLab のジョブを見るなら

Lesstep の Pipeline Inbox for GitLab CI は、JetBrains IDE(2024.1 以降)のプラグインです。GitLab のプロジェクトのパイプラインを、ジョブを段ごとに並べて一覧にします。失敗したジョブの横には、状態・ジョブが動いた時間・GitLab が返す失敗の文(上のような文。スクリプトが失敗しただけのときは GitLab は文を返しません)を出し、ジョブのログを IDE の下のコンソールで開きます。見るのは無料、再実行・取り消し・実行は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

GITLAB は GitLab Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitLab Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:GitLab のジョブのログが見えない・空 · GitLab 18.0 のあとの「This job does not have a trace.」 · GitLab のパイプラインやジョブの断り(400・403・409・429) · GitLab のパイプラインがジョブ0件で失敗 · GitLab のジョブがリソース待ちで進まない · GitLab の「Insufficient permissions to set pipeline variables」 · GitLab の 404「Group Not Found」 · GitLab の「insufficient_scope」 · JetBrains の IDE で GitLab のパイプラインを見る · English