Error during compaction: Conversation too long
会話が長すぎて圧縮すらできない状態。/compact では解消せず /clear が要る。
エラー文字列
Error during compaction: Conversation too long
何が起きているか
会話の圧縮(compaction)そのものが失敗しました。
⚠️ 圧縮は「会話の内容を読んで要約する」処理です。 つまり圧縮するにも、いま溜まっている会話をモデルに読ませる必要があります。会話が長くなりすぎると、その要約作業自体がコンテキストに収まらなくなり、圧縮できなくなります。
⭐ ここが重要です。行き詰まっている状態なので、/compact を何度打っても状況は変わりません。
似たメッセージとの区別
| 表示 | 状態 | /compact で直るか |
|---|---|---|
Context limit reached · /compact or /clear to continue |
コンテキストが上限に達した | ✅ 直る |
Prompt is too long · automatic compaction failed: |
自動圧縮に失敗した | △ 手動で試す価値はある |
Error during compaction: Conversation too long |
圧縮すら不可能 | ❌ 直らない。/clear が必要 |
直し方
1. 会話をリセットする
このエラーが出た時点で、その会話は続行できません。
/clear
⚠️ 作業の文脈は失われます。 リセットする前に、次を済ませてください。
- 途中まで書いたコードをファイルに保存する
- 決めた方針や制約を
CLAUDE.mdなどに書き出す - 次のセッションで再開できるよう、現在地を1〜2行でメモする
⭐ CLAUDE.md に前提を書いておくと、リセット後も同じ文脈で再開できます。 長い会話でやり取りした結論を、そのつどファイルに落としておく運用が最も効きます。
2. 作業を分割する
このエラーは、1つのセッションに詰め込みすぎているサインです。
| やりがちなこと | 分け方 |
|---|---|
| 1セッションで機能をまるごと実装 | 設計 → 実装 → テスト でセッションを分ける |
| 大量のファイルを読ませてから作業を始める | 触る範囲だけ読ませる |
| 試行錯誤の履歴をそのまま引きずる | 方針が決まった時点で一度リセットし、結論だけを渡し直す |
| 長いログやデータを会話に貼る | ファイルに置いて、パスだけを渡す |
とくに最後が効きます。 ログやJSONを会話に直接貼ると、その全文がコンテキストに残り続けます。ファイルに保存して読ませれば、必要な部分だけを扱えます。
3. こまめに圧縮する
行き詰まる前に手を打つのが本質的な対処です。
/compact
区切りのよいタイミング(1つの機能が終わった、方針が決まった)で実行しておくと、この状態に陥りません。
4. コンテキストの残量を確認する
/context
現在の使用量が確認できます。⚠️ Context exceeds the ...-token limit by ... tokens と出ていたら、すでに危険域です。
5. 大きなコンテキストのモデルに切り替える
/model
より大きなコンテキストを持つモデルに変えると余裕ができます。
⚠️ [1m] が付いたモデルは従量課金です。 プランに含まれていない場合は Usage credits required for 1M context が出ます。切り替える前に確認してください。
そして、大きくしても根本解決にはなりません。 上限が遠のくだけで、詰め込み続ければ同じ場所に着きます。
再発防止
- ⭐ 決まったことは会話ではなくファイルに置く。
CLAUDE.mdや設計メモに落としておけば、リセットしても失われません - ログ・データ・長い出力を会話に貼らない。 ファイルに保存してパスを渡す
- 区切りのいいところで
/compact。行き詰まってからでは手遅れです - 1セッション=1つの目的。目的が変わったら
/clearして始め直したほうが、結果的に速く終わります /contextを時々見る。残量を把握していれば、突然詰まることはありません