Claude Projectsのスレッドが勝手に判断して止まる原因の切り分け
複数のスレッドが誤った前提を置いたりblockedで止まったりするときは、原因が共通の設定不備であることが多い。個別に直す前に、症状を分類して直す場所を決める手順をまとめます。
Claude Projectsで複数のスレッドが、誤った前提のまま進んだり、アクセスできないものを避けて別の方法で済ませたり、「blocked」と書いて止まったりしたら、スレッドごとの不具合を疑う前に共通の原因を探します。公式ドキュメントは、この状況の原因を「たいてい各タスクではなく、プロジェクトの設定にある同じ欠落」としています。個別に直す前に、まず全スレッドの状況を一括で聞き出して分類します。
ここでいうClaude Projectsは、claude.ai/codeとデスクトップアプリのCodeタブ、モバイルアプリで使う、スレッドを束ねるコーディネーター型の機能です。チャットに資料を置くタイプのProjectsとは別物で、ProとMaxのプランで公開ベータとして段階的に展開されています(TeamとEnterpriseは対象外)。チャット側の仕組みはClaude ProjectsのRAG検索の仕組みを参照してください。
まず「止まっている」のか「作業中」なのかを見分ける
最初に確認したいのは、本当に問題が起きているかどうかです。Claudeはスレッドの一歩ごとに会話へ投稿するわけではありません。会話に新しいメッセージがないままrunningと表示されているスレッドは、たいてい作業を続けています。
新しいクラウドスレッドは、作業を始める前にクラウド環境を用意します。最初の更新まで少し時間がかかるのは正常です。
判断はスレッドを開いて、トランスクリプトを読むところから始めます。承認待ちなら、そのスレッド内のプロンプトに答えれば動き出します。
一括で聞き出して、症状を仕分ける
複数のスレッドが同じ種類の失敗をしていたら、1本ずつ開いて直すのは遠回りです。プロジェクトの会話に次のように頼みます。公式ドキュメントが挙げている文面です。
For every open thread, list what you asked it to do, what it assumed or couldn't reach, and what it's waiting on.日本語で頼んでも構いません。Claudeが各スレッドを読み、会話の中で答えます。返ってきた一覧を「頼んだこと」「置いた前提・届かなかったもの」「待っているもの」の3列で読むと、共通点が見えてきます。
一覧を読んだら、次の表で症状を分類します。直す場所は、症状によって違います。
| 症状(スレッドの報告) | 疑う原因 | 直す場所 |
|---|---|---|
| ブランチ名やPRの作り方を勝手に決めた | 疑う原因運用ルールが伝わっていない | 直す場所プロジェクトの指示(Project instructions) |
| リポジトリをcloneできない | 疑う原因GitHub側の権限・Appの設定 | 直す場所GitHub Appのインストールと連携 |
| 特定のドメインや社内APIに届かない | 疑う原因ネットワーク許可・認証情報がない | 直す場所クラウド環境(Environment) |
| コネクターやMCPツールが見当たらない | 疑う原因claude.ai側のコネクター設定 | 直す場所コネクターの接続状態 |
| スキルやプラグインを使わずに進めた | 疑う原因クラウドスレッドに入っていない | 直す場所リポジトリへのコミット、Plugins設定 |
| 承認待ちで止まったまま | 疑う原因スレッド内の承認プロンプト | 直す場所該当スレッドで回答 |
| 「Service is busy」と出て進まない | 疑う原因5時間・週の使用量上限に達している | 直す場所待つか、Stop / プロジェクトの一時停止 |
| 「Setup script failed」「The project's environment was removed」 | 疑う原因環境のセットアップスクリプトの失敗、環境の削除 | 直す場所Project settingsのEnvironment |
| 「Claude ran out of context on this turn」 | 疑う原因スレッドのコンテキストウィンドウが満杯 | 直す場所プロジェクトの会話で新スレッドを頼む |
| 自分のパソコン上のスレッドが止まる | 疑う原因Remote Controlの接続切れ | 直す場所パソコン側のアプリとバージョン |
症状ごとの原因と直し方
運用ルールが指示に無いと、スレッドは推測で埋める
ブランチの切り方、PRの粒度、完了前に走らせる検査、マージの可否といった運用ルールは、プロジェクトの指示に書いてない限りスレッドは知りません。指示はProject settingsのMemoryにあるProject instructionsで編集します。上限は16,000字で、新しいスレッドとプロジェクトの会話の両方に送られます。
指示に書く項目は5つです。プロジェクトの目的、作業の場所(リポジトリ、開始ブランチ、PRの命名)、完了前の自己検証、必要なものが欠けたときの動き、事前に承認が要る操作。切り分けで特に効くのは、4番目の「欠けたときの動き」です。
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.これが無いと、届かないものを見つけたスレッドがモックで代用したり推測で進めたりする余地が残ります。日本語のプロジェクトでも、まず「何が足りないかを最初のメッセージで言って止まる」という趣旨を入れておくと、原因が最初の報告に出やすくなります。
やり取りの中で訂正した内容は、Claudeに「これも覚えておいて」と伝えます。プロジェクトメモリに入り、以降のクラウドスレッドが最初から読みます。リポジトリ固有のビルドコマンドなどは、そのリポジトリの CLAUDE.md に置く分担です。
届かないのは、クラウド環境かリポジトリの権限
リポジトリに届かないときのメッセージは3種類あります。
- 「Couldn't start the session — Claude doesn't have GitHub access to this project's repository」: スレッドの開始前に出ます。GitHub Appが未インストール、停止中、または接続したGitHubアカウントと紐づいていない状態です
- 「Unable to access your repository」: スレッドのcloneが失敗しています。GitHubに拒否された、プロジェクトが持つ名前でリポジトリが見つからない、開始ブランチが存在しない、のいずれかです
- 「Claude can't access」: New projectダイアログやProject settingsでリポジトリを保存したときに出ます。メッセージにinstallリンクとreconnectリンクが付き、GitHub Appがそのリポジトリに入っていなければinstall、入っているのに出るならreconnectを使います。AppはGitHub上でインストール済みでも、Claudeに接続したアカウントとは紐づいていないことがあるためです
直すときは、メッセージのボタン(Install GitHub AppやSelect repositories on GitHub)を押し、Check againで確かめます。原因がGitHubの組織側にある場合、たとえばオーナーがAppを承認していない、IP許可リストからClaudeが外れている、といったときは、ボタンの代わりに「See how to fix」のリンクが出ます。ボタンが無いときはGitHubアクセスの設定をやり直し、もう一度メッセージを送ると再試行されます。「Unable to connect to repository」と出る場合は、「Claude couldn't reach GitHub」なら少し待って再送、「couldn't access your repository or environment」ならGitHubアカウントのpush権限と環境がまだ存在するかをProject settingsのEnvironmentで確かめます。
ここで見落としやすい点があります。/web-setup でGitHubを接続していると、通常のクラウドセッションはそのリポジトリを扱えます。ところが、その認証はプロジェクトのクラウドスレッドには足りず、Claude GitHub Appが要ります。普段のクラウドセッションで問題なかったからといって、プロジェクトで通るとは限りません。
ドメインや認証情報が原因なら、直すのはプロジェクトではなく環境です。環境は、スレッドが届くドメイン、持つ環境変数、リクエストに付くAPI認証情報、開始前に走るセットアップスクリプトを決めます。既定の環境は一般的なパッケージレジストリには届きます。社内APIや私的なレジストリ、手元のパソコンにしかないトークンが必要なら、Project settingsのEnvironmentで環境を選ぶか作り直します。詳しくはクラウド環境のネットワークアクセス設定と、Claude Code Webのクラウド環境の仕組みにまとめてあります。
手元で使っているツールは、クラウドスレッドにはない
クラウドスレッドは、自分のパソコンにだけ入っているスキル、MCPサーバー、プラグイン、コマンドラインツールを持っていません。「いつもは使えているのに」と感じる症状の多くは、ここに当たります。入れ方は種類ごとに違います。
- スキル・サブエージェント・コマンド: プロジェクトに追加したリポジトリの
.claude/にコミットする。全リポジトリ分が読み込まれる - プラグイン: Project settingsのPluginsで追加する。リポジトリの
.claude/settings.jsonで有効にしたプラグインは、クラウドスレッドには読み込まれない - MCPサーバー: claude.aiのアカウントに接続したコネクターが、全クラウドスレッドに渡る。プロジェクトの会話自体はコネクターを持たないので、コネクターが要る作業はスレッドへのタスクとして送る
- コマンドラインツール: 環境のセットアップスクリプトでインストールする
コネクターがスレッドに見えているかは、claude.ai/codeで該当スレッドを開き、メッセージ欄横の「+」メニューのConnectorsで確認できます。ここでオフにすると、そのスレッドだけでなくアカウントの既定として保存され、新しいスレッドやclaude.aiのチャットでも外れたままになります。切り分けのつもりで切ると、他の場所にも影響が出ます。
複数リポジトリのプロジェクトは、設定の効き方が変わる
リポジトリが1つのプロジェクトでは、そのリポジトリの .claude/settings.json の権限ルール、フック、env がスレッドに効きます。リポジトリが複数になると、スレッドはクローンの上の階層から始まり、どのリポジトリのファイルもそれらの設定としては読まれません。CLAUDE.md とスキルは全リポジトリから読み込まれます。
つまり、リポジトリを1つ足したことで、これまで効いていた許可ルールが消えたように見える症状があり得ます。複数リポジトリのプロジェクトでは、決めごとをプロジェクトの指示に書き、環境変数はクラウド環境に持たせる構成が案内されています。
承認待ちは、そのスレッドの中でしか解けない
スレッドは、そのモデルが対応していればautoモードで動くので、ほとんどのツール呼び出しは確認なしで進みます。承認が必要になった場合、プロンプトはそのスレッド内に出て、答えるまでスレッドは待ちます。プロジェクトの会話で「進めて」と伝えても届きません。
これが「blockedのまま動かない」の一因になります。Overviewの「Waiting on you」に並んでいるスレッドを開き、そこで答えます。全スレッドで同じコマンドを毎回聞かれるなら、リポジトリの .claude/settings.json に権限ルールを置きます。ただし、その効き方は前節のとおり、リポジトリが1つのプロジェクトに限られます。
使用量の上限に達したスレッドは、自動で再試行し続ける
プランの5時間または週の上限に達すると、スレッドは自分で再試行を繰り返し、上限がリセットされた時点で続きを進めます。待っている間は「Service is busy」と「Claude is still retrying and will continue automatically」が表示され、止まって見えても操作は要りません。次の使用枠を食わせたくなければ、スレッドのStopを押すか、プロジェクトを一時停止して全スレッドを止めます。例外はroutineが起動したスレッドで、待たずにlimit errorで停止するので、リセット後にメッセージを送ります。
メッセージが原因を名指ししているときの次の一手
環境まわりのメッセージは、原因が文面に出ています。
- 「Setup script failed」: エラー上のEdit setup scriptを押し、環境のスクリプトを直してからメッセージを送り直す
- 「The project's environment was removed」: Project settingsのEnvironmentで別の環境を選ぶ。変更が届くのは新しいスレッドだけ
- 「Claude ran out of context on this turn」: スレッドがコンテキストウィンドウを使い切った状態です。新しいセッションで自動的に続く旨が表示されていれば待ち、そうでなければ残りの作業をプロジェクトの会話で新スレッドとして頼む
自分のパソコンで動かしたスレッドは別の前提を持つ
パソコン上で動かすように頼んだスレッドは、Remote Control経由のClaude Codeセッションです。手元のファイル、ツール、MCPサーバー、Claude Codeの設定で動き、プロジェクトの指示は受け取りますが、メモリファイルは読み込まれません。「クラウドスレッドでは守っていた決めごとを、このスレッドは知らない」という症状の原因になります。
止まったときは「Lost contact with your folder」が出ます。多くはパソコンのスリープ、またはデスクトップアプリや claude remote-control の終了です。パソコンを起こし、アプリのSettings > Claude Codeで「Use this computer from your phone and claude.ai」がオンか確認するか、同じフォルダーで claude remote-control を再実行します。「Claude is out of date on your device」なら、手元のClaude Codeがv2.1.280より古い状態です。接続まわりの詳しい見分け方はRemote Controlに接続できないときの見分け方と対処にあります。
間違ったスレッドの後始末と、直したあとの送り方
分類ができたら、誤った前提で始まったスレッドを片づけます。手段は2つです。
- Overviewからそのスレッドを開き、メニューでresolvedにする
- スレッドのメッセージ欄で、代わりにやることを直接伝える
どちらでも、そのスレッドのブランチとPRはGitHubに残ります。消すならGitHub側で自分で削除します。
設定を直したら、残りの作業を一気に送り直さず、1本だけ送ります。Project settingsの指示、リポジトリ、プラグイン、環境の変更は、新しいスレッドにだけ届き、すでに動いているスレッドには反映されないためです。1本で結果を確かめてから、残りを新しいスレッドとして送ります。
再発を減らすための運用
最初のバッチは、小さい実作業を1つ送って結果を見ます。スレッドが何を前提にし、ブランチに何を残したかを開いて確かめると、設定不備がその段階で出ます。最初の一括送信の前にこの確認を挟むと、失敗を小さく抑えられます。
もう一つは、Claudeに進め方を指定することです。「スレッドを提案して、私の承認を待ってから始めて」「同時に走らせるのは2つまで」といった頼み方が使えます。これらはClaudeがプロジェクトメモリに保存して守る指示で、強制される設定ではありません。上限を厳密に守らせたいなら、プロジェクトの指示に文面ごと書きます。
使用量が気になるときは、Claudeの使用量がアイドル中に急増する原因と確認手順も併せて確認してください。PRを見張っているスレッドは、CIの失敗やレビューコメントで目覚めるため、放置していても使用量を消費します。
切り分けの流れ
- スレッドを開き、本当に止まっているか(承認待ちか、作業中か)を見る
- プロジェクトの会話に、全スレッドの依頼内容・前提・届かなかったもの・待ち先を一覧させる
- 一覧を症状の表に当てはめ、共通の欠落を1つ特定する
- 誤った前提のスレッドをresolvedにするか、直接指示し直す
- 欠落を指示・環境・接続のいずれかで直す
- 1本だけ新しく送って確認し、残りを送る
よくある質問
プロジェクトの会話に「Claude hasn't responded」と出ました
Claudeは動いているものの、返信がプロジェクトに届いていない状態です。バナーのRestart Claudeを押すか、Project settingsのGeneralにあるRestart Claudeの行でRestartを押します。再接続され、書きかけだった返信は失われますが、スレッドには影響しません。
「Additional usage credits are required」と出たときは
スレッドやプロジェクトの会話が、プランに含まれないモデルやコンテキストサイズへのリクエストを送り、アカウントで使用量クレジットがオンになっていない状態です。クレジットを使える状態にしてから、メッセージを送り直すと再試行されます。