Lesstep
GitLab.com・Self-Managed・REST API・2026年10月25日に確認

GitLab:マージリクエストの変更が途中で切れる・404 になる

GitLab の REST API は、マージリクエストが変えたファイルを、差分の一覧(GET /projects/:id/merge_requests/:merge_request_iid/diffs・GitLab 15.7 から)でページに分けて、古い GET /projects/:id/merge_requests/:merge_request_iid/changes(15.7 で非推奨・API v5 で削除の予定)で1回の答えにまとめて渡します。どちらも GitLab がそのマージリクエストについて保存したものを返し、どこまで保存するかは差分の上限で決まります。以下は、2026年10月25日に gitlab.com が返した答えと、その裏にある GitLab の文書の決まりです。

HTTP/1.1 404 Not Found

{"message":"404 Not found"}

差分の上限

200 なのにファイルや差分が欠けるとき

/diffs や /changes の 404

直し方

IntelliJ IDEA で GitLab のマージリクエストを見るなら

Lesstep の Merge Request Inbox for GitLab は、JetBrains IDE(2024.1 以降)のプラグインです。マージリクエストの変更ファイルは差分の一覧から100件ずつ3,000ファイルまで読み、一覧が 404 の GitLab では /changes から読みます。ファイルはそれぞれ IDE の差分で開き、マージベースと先頭のコミットでファイル全体を読むので、GitLab が差分を外したファイルも変更が見えます。1.0.17 からは、GitLab が先頭のファイルだけを残したとき(changes_count の末尾が「+」か "overflow": true)や3,000を超えるとき、既読の数のところで、先頭のファイルだけを表示していて残りは git diff で見えると言います(前は何も言わずに一覧が終わっていました)。作った直後のマージリクエストは、GitLab が差分を作り終えるまで数秒聞き直します。読むのは無料、承認・コメント・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

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

ほかに:GitLab の 404「Project Not Found」 · GitLab の MR の一覧の断り(400・404) · GitLab の 429「Retry later」(回数の上限) · GitLab の 401「invalid_token」 · GitLab の「insufficient_scope」 · GitLab のマージの断り(405・409・422) · GitLab の承認の断り(401・409) · GitLab のコメント・スレッドの断り(400・403) · GitLab のマージリクエストが作れない(409・422・400) · GitLab のリベースの断り・失敗(403・409) · GitLab の自動マージの断り(405)・取り消し · GitLab の「compare_timeout」(差分の上限) · JetBrains の IDE で GitLab のマージリクエストを扱う · English