Lesstep
GitLab・CI/CD のジョブのログ・ジョブの API・2026年10月24日に確認

GitLab がジョブのログを断った理由・ログが空の理由

ジョブのログは GET /projects/:id/jobs/:job_id/trace で読みます。GitLab は順に3つを確かめます。あなたのアカウントがプロジェクトのジョブを読めるか(読めなければ 403)、その ID がこのプロジェクトのログのあるジョブか(でなければ 404)、このジョブのログを読めるか(読めなければまた 403)。以下はすべて GitLab のソース(lib/api/ci/jobs.rb・app/policies/ci/build_policy.rb・Ci::Build#debug_mode?)を 2026年10月24日に読んで確かめたものです:

HTTP/1.1 403 Forbidden

{"message":"403 Forbidden"}

ログは 403 なのに、ジョブそのものは開ける

ジョブ(GET /projects/:id/jobs/:job_id)は3つ目を確かめないので、ジョブは 200、ログは 403 になります。次の2種類のジョブのログは、プロジェクトのジョブを更新できる人、つまり Developer 以上の役割の人にだけ表示されます:

ジョブそのものも 403

この場合は、プロジェクトの CI/CD の設定かあなたの役割のために、アカウントがプロジェクトのジョブをまったく読めません。ログのせいではありません。read_api か api の権限が無いトークンも 403 で断られますが、そのときの答えには insufficient_scope と書いてあります。足す権限の見つけ方へ。

404「404 Not found」

ログはプロジェクトのビルドからしか読まないので、下流のパイプラインを始めるトリガージョブは 404 になります。そのログは、始めたパイプラインのジョブにあります。ほかのプロジェクトのジョブの ID や、消したパイプラインのジョブの ID も 404 です。

200 で中身が空

GitLab の説明の表では、ログの無いジョブは 404 とされていますが、ソースでは 200 で中身が空になります。まだ何も書いていないジョブ(created・pending・manual・skipped)か、ログを消したジョブです。POST /projects/:id/jobs/:job_id/erase は、ジョブの成果物とログを消します。

いまどうなっているか

curl --header "PRIVATE-TOKEN: your-token" "https://gitlab.com/api/v4/projects/GROUP%2FPROJECT/jobs/123"

status で、ジョブが動いたかがわかります。ログが消されていれば erased_at が null ではありません。gitlab.com はあなたのサーバーの住所に置き換えてください。

直し方

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

Lesstep の Pipeline Inbox for GitLab CI は、JetBrains IDE(2024.1 以降)のプラグインです。GitLab のプロジェクトのパイプラインをジョブといっしょに一覧にし、ジョブのログを IDE の下のコンソールで、ログの色のまま開きます。動いているジョブは書かれるそばから追います。終わったジョブにログが無いときは、ジョブの状態を添えてそう言います。GitLab がトークンなしではログを渡さないところでは、トークンを足すように言います(read_api で足ります)。1.0.16 からは、ジョブは見えるのにログを断られたとき(403)、デバッグログかエージェントのフローのために、そのログは Developer 以上の役割の人にだけ表示されると言います。それまでは、トークンに read_api か api の権限が要ると言っていました。1.0.20 からは、ログを消去されたジョブを、ログの無いジョブでなく消去されたジョブとして出します。見るのは無料、再実行・取り消し・実行は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

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

ほかに:GitLab のパイプラインやジョブの断り(400・403・409・429) · GitLab の「Insufficient permissions to set pipeline variables」 · GitLab の「insufficient_scope」 · GitLab の 401「invalid_token」 · GitLab の 404「Project Not Found」 · GitLab の 404「Group Not Found」 · GitLab のジョブが詰まった・時間切れで落とされた · GitLab 18.0 のあとの「This job does not have a trace.」 · JetBrains の IDE で GitLab のパイプラインを見る · English