本文へ移動
情シスのミカタ
ニュース約5分で読めます

GitHub Appのトークンで一部が誤って404に 10月の障害は20件目

GitHubは、日本時間2026年10月27日15時55分から17時1分まで、GitHub Appのサーバー間のトークンで認証したAPIとgitの要求の一部が、誤って404を返したと公表しました。データベースの移行と大量の削除の処理が重なったのが原因で、GitHub自身も起きている間は気づいていませんでした。自動の処理で確認することをまとめます。

公開 情シスのミカタ編集部AIにより執筆編集部が確認:
文字
GitHub Appのトークンで一部が誤って404に 10月の障害は20件目

この記事のまとめ

  • GitHubは、日本時間10月27日15時55分から17時1分まで、GitHub Appのサーバー間のトークンで認証したAPIとgitの要求の失敗が増えたと公表しました。Actionsのトークンは対象外です。認証したgitの操作では、平均1.24%、最も多いときで2.49%が誤って404を返しました。
  • 原因は、予定のメンテナンスで表を別のMySQLのクラスターへ移した作業と、同じ表で約5,900万件を消す定期の処理が重なり、複製が最大1時間遅れたことです。GitHubは、影響が出ている間は検知できなかったとしています。
  • GitHubは、存在するリポジトリでも、認証が通らなければ403ではなく404を返します。その時間に「見つからない」で止まった処理は、リポジトリの側の問題ではなかった可能性があります。
こんな方に#20代#30代#40代#50代実務

GitHub Appで動く自動の処理のうち、100回に1回あまりが「見つからない」で失敗していた時間がありました。日本時間2026年10月27日の15時55分から17時1分までです。GitHubは同じ日の17時、状況ページにこの障害の報告を載せました。対象はGitHub Appのサーバー間のトークンで認証したAPIとgitの要求で、Actionsのトークンは含みません。

GitHubの状況ページの障害の報告。2026年10月27日6時55分から8時1分(協定世界時)まで、GitHub Appのサーバー間のトークン(Actionsのトークンを除く)で認証したAPIとgitの要求の失敗が増え、認証したgitの操作は平均1.24%(2.6倍)、最大2.49%(5.3倍)が誤って404を返したと書かれている。続けて、IADとAzure Central USのデータセンターの2つのMySQLのクラスターの間で7つの表を移す予定のメンテナンスが原因で、そのうち1つがGitHub Appのサーバー間のトークンのインストールの記録の表であること、同じ表で定期の片付けの処理が4時44分から6時17分に約5,900万件を消し、移行に使うgh-ostの複製が最大1時間遅れたこと、6時55分に読み取りの切り替えを始め7時21分に終え、影響は検知されないまま8時1分の書き込みの切り替えの完了まで続いたこと、重なる片付けの処理を止め、複製の遅れが大きいときは読み取りの切り替えを止める仕組みを入れることが書かれている
GitHubの状況ページの報告(英語)。誤った404の割合と、原因の移行と片付けの処理出典: GitHub Status「Elevated 404s for GitHub App s2s tokens in git/API」(引用)

誤った404は、ふだんの最大5.3倍

報告によると、認証したgitの操作で誤って404を返した割合は、平均で1.24%、最も多いときで2.49%でした。ふだんの2.6倍と5.3倍にあたります。APIの要求でも失敗が増えたとしていますが、APIだけの割合は書かれていません。

経過を日本時間に直すと、次のとおりです。

日本時間(10月27日) できごと
13時44分〜15時17分 GitHub Appのインストールの記録を持つ表で、定期の片付けの処理が約5,900万件を消す
15時55分 移行先のクラスターへ、読み取りを切り替え始める。ここから影響が出る
16時21分 読み取りの切り替えが終わる
17時0分 状況ページに報告が載る
17時1分 書き込みの切り替えが終わり、影響がなくなる

報告は、影響は出ていたものの、起きている間は検知されなかったと書いています。

状況ページの報告は、影響がほぼ終わってから1回載っただけです。障害の最中に状況ページを見ても、手がかりは無かったことになります。

移行と大量の削除が重なり、複製が1時間遅れた

原因は、予定していたメンテナンスでした。GitHubは、IADとAzure Central USのデータセンターにある2つのMySQLのクラスターの間で、7つの表を移していました。そのうち1つが、GitHub Appのサーバー間のトークンに使うインストールの記録の表です。

ただ、この日は同じ表で、定期の片付けの処理が約5,900万件の記録を消していました。移行に使うgh-ostというツールの複製が追いつかず、クラスターの間の遅れは最大1時間に。遅れたまま読み取りを新しいクラスターに切り替えたため、トークンの確認に要る記録を引けない要求が出た、という流れとみられます。

GitHubは、ここ数か月で同じような移行を何度か済ませていて、目立った影響は無かったとしています。再発を防ぐため、移行の前に重なる片付けの処理を止めることと、複製の遅れが大きいときは読み取りの切り替えを止めることを、手順と自動化に入れるそうです。

404は「無い」とは限らない

この障害で気をつけたいのは、エラーが404だったことです。GitHubの説明では、非公開のリソースに正しく認証できていない要求を送ると、403 Forbiddenではなく404 Not Foundを返します。非公開のリポジトリがあることを、外に知らせないためです。

GitHub DocsのREST APIの困ったときのページの「404 Not Found for an existing resource」の節。非公開のリソースに正しく認証できていない要求を送ると404 Not Foundが返ること、非公開のリポジトリがあることを確かめさせないために403 Forbiddenではなく404 Not Foundを使っていること、あるはずのリソースで404が返ったら認証を確かめるよう書かれている
GitHub Docsの説明(英語)。認証が通らない要求には403ではなく404を返す出典: GitHub Docs「Troubleshooting the REST API」(引用)

つまり、その時間に自動の処理が受け取った「Not Found」は、リポジトリやブランチが消えたのではなく、トークンが一時的に通らなかったことを示していたのでしょう。

困るのは、404を「無い」と決めて動く処理です。ミラーやバックアップの仕組みが「元が消えた」と見て写しを消す、同期の仕組みが作り直す、デプロイの仕組みが失敗として次の手順を飛ばす。こうした動きが起こりえます。GitHubの報告は、利用者の側で何が起きたかには触れていません。自社の処理がどう作られているかは、一度見ておきたいところです。

影響を受けるのは、GitHub Appで動く処理

対象になりうるのは、次のような処理です。

  • GitHub Appとして登録した社内のbotや、自社で作った連携の仕組み。インストールのトークン(installation access token)でAPIやgitを使うもの
  • GitHubの外で動くCIやデプロイの仕組みのうち、GitHub Appで認証しているもの
  • GitHub Appとしてインストールした外部のサービス
  • Actionsのワークフローの中で、自社のGitHub Appのトークンを作って使っているもの

報告が対象にしていないのは、Actionsの標準のトークン(GITHUB_TOKEN)です。個人のアクセストークンやSSHの鍵、OAuth Appのトークンについては、何も書かれていません。その時間に処理を動かしていなかった会社は、気にしなくてかまいません。

27日夕方のログで確認すること

  1. 10月27日15時55分から17時1分の間に、GitHub Appで動く処理が404で失敗していないかを、CIやbot、デプロイのログで探します。
  2. 見つかったら、その処理をもう一度動かし、途中で止まったままのものが無いかを見ます。ミラーや同期の仕組みは、写しが消えたり作り直されたりしていないかも確認します。
  3. 404を受けたときの動きを見直します。存在するはずのリポジトリで404が出たら、すぐに「無い」と決めず、間をあけて何度か試し直すようにします。消す、作り直すといった戻しにくい処理の前には、特に確認を挟みたいところです。
  4. 監視では、GitHubのAPIの応答を状態コードごとに数え、404が急に増えたら知らせるようにします。今回は状況ページに頼れませんでした。
  5. ついでに、GitHub Appに与えている権限が多すぎないかも見ておくとよいでしょう。考え方はGitHub、Appの最小権限管理を改善 自動連携の権限を見直しにまとめています。

10月の障害は20件目

GitHubの状況ページの障害の記録を10月1日から数えると、今回で20件目です。同じ27日の未明、2時59分から3時40分(日本時間)にも、REST APIの応答が遅れ、ChecksやActions、Issues、プルリクエスト、GraphQLの一部で遅れや時間切れが起き、通知も遅れていました。18件目までは、GitHubでPR・Webhookが遅延 監査ログは最大110分遅れ、10月13件目の追記で並べています。

障害の多い月は、状況ページの知らせを待つより、自社のログで先に気づける作りにしておくほうが安心です。

よくある質問

QGitHubが全体に止まっていたのですか。

Aほかの機能が止まったという記載はありません。失敗したのは、GitHub Appのサーバー間のトークンで認証した要求の一部で、多くの要求は通っていました。そのため、処理が時々だけ失敗する形になり、気づきにくかったはずです。

出典・参考

編集部が確認:。確認した監修者は、この下に載せています。

執筆

情シスのミカタ編集部AIにより執筆

書いた AI: AI記者(解説)

法令・官公庁の発表・企業の公式発表などの一次情報を調べて、情シス向けの解説・比較・テンプレの記事を書きます。数字と日付は出典と照らして確かめ、記事の最後に出典を載せています。使っているAI: Anthropic Claude。

監修

佐々木 航株式会社Game

代表取締役。工学部出身で、21歳で起業してからシステム会社の経営一筋で8期目。アプリの受託開発から始め、いまはAIを使ったシステムソリューションを手がけています。150社以上の企業とのプロジェクトで培った開発と情報システムの現場の経験と声を形にし、激動の時代を乗り越えたいと考えています。

メモ: 掲載時に自動で(しばらくの間)

記事は AI が一次情報を調べて書き、機械の検査を通してから公開しています。人が見ているもの・見ていないものはAI の使い方に書いています。まちがいに気づいたら訂正・ご指摘からお知らせください。直したら、記事の最後に何を直したかを書きます。

役に立ったら、いいねと共有をお願いします