CASE · 中程度 · runaway-loop
未検証の報告公開情報からの収集15個のリポジトリを同時に直させたら、GitHubアカウントが6日間凍結された(未検証の報告)
筆者によれば、Claude Codeのサブエージェント15個に自分の公開リポジトリ15個を同時に直させていたところ、修正の5周目の途中でGitHubのAPIがすべて403を返すようになり、アカウントが利用規約違反を理由に停止されていた。
約5分で読めます
- 発生日
- 分類
- runaway-loop
- 影響範囲
- uptime
- 検知
- manual-observation
- タグ
- #claude-code #github #account-suspension #subagents #parallelism #rate-limit #acceptable-use-policy
CH 1
原因
GitHubはどの規約に当たったかを示しておらず、原因は筆者の推測である。1日でPRを50本ほど作り、それぞれに何度もpushし、CIの結果を数十秒おきにAPIで確かめ、落ちたCIを再実行していた。作業は自分のリポジトリだけだったが、利用規定が禁じる過度な自動の大量の活動に見えた可能性があると筆者はみている。
CH 2
結果
凍結は約6日続いた。その間、リポジトリとPRは外から見えなくなり、同じアカウントで公開していたGitHub Pagesのサイトも見られなくなった。GitHubと連携していたZennの記事は更新できず、GitHubを使う定期タスクは毎回失敗した。気づいてから申し立てを送るまでにも半日ほどかかった。
CH 3
対策
筆者は復旧の申し立て(Reinstatement)を送り、使い方を尋ねたサポートに用途と今後の上限を答えて、6日後に解除された。再発防止として、書き込みの同時実行を2つまでにし、pushはテストが通ってから1回、PRは1分以上あけて1日10本・push30回まで、CIの確認は2分以上あけ、403・429・secondary rate limitが出たら再試行せずに止める、と指示ファイルに書いた。
LOG経過
- 発生
記録上の発生日(date_observed)
- 検知
発生から1日後 · 検知の経路:
manual-observation - 対応
検知から6日後
記録された日付(date_observed・date_detected・date_resolved)だけで構成しています。
何が起きたか
筆者は、自分の公開リポジトリ15個のバグ修正、テストの追加、ドキュメントの 手直しをClaude Codeに任せていた。リポジトリごとにサブエージェントを 1つずつ割り当てて15個を同時に動かし、直した結果を別のAIに採点させ、 点数が上がるまで直す流れを何周も回していた。筆者によれば、2026年10月9日の 0時台(日本時間)、5周目の途中でGitHubのAPIがすべて403を返すようになり、 アカウントは利用規約違反を理由に停止されていた。
現場の混乱
10月8日の昼から深夜までに、エージェントはPRを50本ほど作り、それぞれに 何度もpushし、CIの結果を数十秒おきにAPIで確かめ、落ちたCIを再実行していた。 筆者は、人間の手作業ではありえない量と速さだったと振り返っている。
凍結に気づいた直後はサインインの失敗が続いたとして入れなくなり、 朝になって停止の画面を確かめた。どの規約に違反したかは書かれていなかった。 夜中だったこと、サインインが制限されたこと、申し立てのフォームを探すのに 手間取ったことで、申し立てを送るまでに半日ほどかかった。
影響は思っていたより広かった。リポジトリとPRは外から見えなくなり (消えたわけではない)、同じアカウントで公開していたGitHub Pagesの サイトも見られなくなった。GitHubと連携していたZennの記事は追加も修正も できなくなり、GitHubを使う定期タスクは毎回失敗した。筆者は、1つの アカウントに色々なものを載せていると、止まったときに全部が一緒に止まると 書いている。
原因
GitHubは最後までどの規約に当たったかを具体的に示しておらず、以下は 筆者の推測である。GitHubの利用規定は、過度な自動の大量の活動と、自動的な 手段でサーバーに過度な負担をかけることを禁じている。作業は自分の リポジトリだけを対象にしたまじめな修正だったが、短時間に大量のPRとpushと API呼び出しを繰り返したため、機械的にはこれに見えた可能性があると筆者は みている。サポートからも、不正利用を検知する仕組みに引っかかったので 人の手で確認している、という説明があった。
筆者はもう一つの可能性として、無料のアカウントは1人1つまでで、 自動化専用のマシンアカウントは別に1つだけ持てるという決まりに触れている。 ただし筆者は、使っているGitHubアカウントはこれ1つだけだとサポートに 答えている。
対策
筆者は、指摘された点を直すので元に戻してほしいという復旧の申し立て (Reinstatement)を選び、自分のリポジトリにAIエージェントを使っていたこと、 他人のリポジトリには書き込んでいないこと、今後は量と速さを抑えることを 英語で書いて送った。数時間後、GitHubをどう使う予定かを尋ねる返信があり、 用途、マージは自分で判断していること、今後の具体的な上限を答えた。 10月15日の朝に制限が解除された。週末をはさんで約6日だった。筆者は、 凍結中に別のアカウントを作って作業を続けると、凍結の回避とみなされる おそれがあると注意している。
再発防止として、筆者はGitHubのREST APIのベストプラクティスを参考に、 エージェント向けの指示ファイルに上限を書いた。GitHubに書き込む作業の 同時実行は2つまでにしてリポジトリは順番に処理する。pushは手元でテストと lintが通ってから1つのPRにつき原則1回。PRの作成は1分以上あけ、1日10本・ push30回までとし、超えそうなら翌日に回す。CIの結果は通知で待ち、確かめる ときは2分以上あける。CIの再実行は1つのジョブにつき1回まで。403・429・ secondary rate limitが出たら再試行せずに止めて報告する。作業は1日 3〜5リポジトリずつに分け、大事なものを1つのアカウントに集めない。
運用する側の教訓:エージェントに外部サービスを任せるときは、任せる範囲と 一緒に、同時に動かす数と書き込みの速さの上限も決めておく。自分の リポジトリだけの作業でも、量が多すぎれば乱用と区別されない。
出典
この記録をチームに回す