Ошибка сжатия Claude Code: как починить /compact по тексту ошибки
Красное «Error compacting conversation» в Claude Code — лишь обёртка: причина записана в строке рядом. По ней выбирают откат, /compact с фокусом или /clear.
Содержание

Красное уведомление Error compacting conversation в Claude Code причину не называет. Оно сообщает только одно: сжатие беседы (compaction) закончилось ошибкой. Что именно сломалось, написано в строке рядом: Error during compaction:, Conversation too long…, Compaction failed · или Prompt is too long · automatic compaction failed:, а дальше идёт сама причина. От этого текста зависит дальнейший шаг: откатить беседу на несколько сообщений назад, запустить /compact с указанием, что сохранить, убрать тяжёлое вложение, сначала исправить исходную ошибку или начать заново через /clear, заранее записав состояние работы в файлы.
Начинать почти всегда стоит с обновления: проверьте версию командой claude --version и обновитесь через claude update. Сбои сжатия исправляют в конкретных версиях, и ошибка из прошлогоднего обсуждения на свежей сборке может уже не повторяться. Всё ниже описано по состоянию на 16 октября 2026 года для Claude Code 2.1.301: терминал, а также IDE и десктоп-приложение, где работают те же команды. Сжатие беседы в чате claude.ai и серверная Compaction в API — другие продукты, эти шаги к ним не относятся.
Error compacting conversation — обёртка: причина в соседней строке
В версии 2.1.301 это уведомление выводится, когда ошибкой заканчивается любое сжатие: ручной /compact, автосжатие (auto-compact) или частичное сжатие из меню отката — пункты Summarize from here и Summarize up to here. Собственного смысла у уведомления нет: так оно работает в версии 2.1.301, что видно по строкам самой программы, а в документации Claude Code оно не описано.
В трёх случаях уведомление не появляется вовсе:
- вы нажали Esc во время сжатия. С версии 2.1.133 в этот момент выводится
Compaction canceled., а в более старых версиях всплывало ложноеError compacting conversation; - сжимать нечего — ответ
Not enough messages to compact.; - сжатие запретил хук PreCompact — ответ начинается с
Compaction blocked by PreCompact hook:.
Если уведомление мелькнуло, а причину вы не успели прочитать, запустите /compact вручную. При ручном запуске сбой выводится как ошибка с префиксом Error during compaction:, и после двоеточия стоит исходный текст. Его и ищите в таблице ниже.
Таблица: текст ошибки сжатия, что он значит и что делать первым
| Текст в Claude Code | Что произошло | Первое действие |
|---|---|---|
Error during compaction: и дальше причина | Ручной /compact не прошёл; суть — в тексте после двоеточия | Найти этот текст ниже в таблице |
Conversation too long. Press esc twice to go up a few messages and try again. | Беседа так разрослась, что даже запрос на её пересказ не помещается в контекстное окно | Двойной Esc, вернуться на несколько сообщений назад, снова /compact |
Compaction failed · conversation could not be reduced below the context limit | Сжатие не смогло уложить беседу ниже лимита контекста | Откат за ход с самым крупным выводом или /clear (вывод, в документации шагов нет) |
Compaction failed · attached media exceeds size limits | Мешают вложения: изображения, документы | Откат за ход, где добавлено крупное вложение (вывод, в документации шагов нет) |
Compaction interrupted · This may be due to network issues — please try again. | Соединение оборвалось во время сжатия | Проверить сеть и повторить /compact |
Prompt is too long · automatic compaction failed: и дальше причина | Автосжатие упёрлось в другую ошибку, например недоступную модель или сбой авторизации | Сначала устранить названную ошибку, потом /compact |
Autocompact is thrashing и дальше пояснение | Сжатие сработало, но файл или вывод инструмента трижды подряд снова заполнил окно | Читать файл частями, /compact с фокусом, /clear |
Compaction blocked by PreCompact hook: и дальше команда и причина | Сжатие запретил ваш собственный хук | Найти хук PreCompact в настройках |
Not enough messages to compact. | Пересказывать нечего: в беседе один обмен или её только что сжали | Если окно всё равно полное — /clear и запрос покороче |
/compact isn't available in this environment. | Задана переменная DISABLE_COMPACT | Убрать переменную |
Compaction canceled. | Сжатие прервано клавишей Esc | Запустить /compact ещё раз |
Проверка на Claude Code 2.1.301 (macOS, неинтерактивный режим claude -p, 16 октября 2026 года) воспроизвела три ответа: блокировку хуком PreCompact, Not enough messages to compact. и /compact isn't available in this environment.. Остальные строки таблицы взяты из самой программы, журнала изменений и справочника по ошибкам Claude Code. Conversation too long, оба варианта Compaction failed, thrashing, обрыв сети и само красное уведомление в этой проверке не вызывались.

Сначала claude update: какие сбои сжатия уже исправлены
Многие тексты из таблицы относятся к ошибкам, которые разработчики уже закрыли. По журналу изменений Claude Code это, в частности:
- 2.0.31 —
/compactперестал падать сprompt_too_long: он учитывает границы прошлых сжатий; - 2.1.85 —
/compactбольше не падает с «context exceeded», когда запрос на сжатие сам не помещается в окно; - 2.1.89 — автосжатие останавливается с понятной ошибкой вместо бесконечного цикла (thrashing);
- 2.1.113 — сжатие возобновлённой сессии с длинным контекстом больше не падает с
Extra usage is required for long context requests; - 2.1.217 — на Amazon Bedrock распознаётся
Input is too long for requested model., и/compactперестал падать на этой ошибке (подробнее о ней — в разборе «Claude в AWS Bedrock отвечает 400: причина по тексту ошибки»); - 2.1.280 — сессия больше не падает на каждом ходу и при
/compactиз-за повреждённой записи о недоступных MCP-инструментах; - 2.1.282 — если модель отказывается пересказывать беседу, сжатие повторяется на резервной модели;
- 2.1.284 — если после сжатия запрос всё ещё слишком длинный, Claude Code сжимает ещё раз и оставляет меньше свежих сообщений;
- 2.1.285 — сжатие и возобновление больше не ломаются на повреждённых маркерах сжатия в сохранённой сессии;
- 2.1.290 — исправлены ошибка сжатия «null is not an object» и сбой автосжатия с
Prompt is too long, когда Mac уходил в сон; - 2.1.299 — сессии с моделью под именем шлюза за
ANTHROPIC_BASE_URLбольше не обрываются наPrompt is too long · automatic compaction failedоколо 200 тыс. токенов.
Если у вас версия старше нужной строки, обновление может снять проблему без всяких обходных путей.
Conversation too long и Compaction failed: откат через двойной Esc
Conversation too long. Press esc twice to go up a few messages and try again. означает, что пересказ беседы не помещается в контекстное окно: сжимать уже нечем. Сам текст подсказывает выход — отступить на несколько сообщений назад. Откат здесь — это меню rewind самой беседы, а не git.
- Сохраните копию беседы:
/export compact-backup.txtвыгружает её в обычный текстовый файл. - Очистите поле ввода и дважды нажмите Esc или введите
/rewind. Если в поле есть текст, первый двойной Esc только очистит его; текст сохранится в истории, вернуть его можно стрелкой вверх. - Выберите сообщение на несколько ходов раньше и действие:
- Restore conversation — беседа возвращается к этой точке, файлы на диске остаются как сейчас. Именно это и предлагает текст ошибки.
- Summarize from here — сжимает всё начиная с выбранного сообщения; ранние инструкции остаются дословно.
- Summarize up to here — сжимает всё до выбранного сообщения, поздние сообщения не трогает.
- Если вы выбрали Restore conversation, снова запустите
/compactи укажите, что сохранить, например/compact оставь план, список изменённых файлов и нерешённые ошибки. Текст выбранного сообщения при откате возвращается в поле ввода; если он мешает набрать команду, сотрите его и отправьте позже.
Пункты Summarize — тоже сжатие, только частичное: если и они заканчиваются тем же уведомлением, выберите Restore conversation. Чтобы задать фокус пересказа в меню, выделите пункт Summarize стрелками и впишите указание в строку add context (optional), затем нажмите Enter; цифровая клавиша запускает пересказ сразу, без указаний. Пункты Restore code откатывают файлы — для борьбы с ошибкой сжатия они не нужны. Подробности — в разделе о точках отката в документации Claude Code.

Compaction failed: беседа не уменьшается или мешают вложения
Когда именно выводится каждая из двух строк Compaction failed ·, в документации не описано, поэтому шаги ниже — вывод из соседних разделов справочника ошибок.
conversation could not be reduced below the context limit: найдите ход, где в беседу попал самый объёмный вывод (целиком прочитанный большой файл, длинный лог), и откатитесь за него через Restore conversation. Если такого хода нет, запишите состояние работы в файлы и начните с/clear(как это сделать — в разделе о профилактике ниже).attached media exceeds size limits: откатитесь за ход, в котором добавлено крупное изображение или PDF. В разделе справочника об ошибкеRequest too large(лимит запроса 32 МБ) сказано, что/compactотбрасывает накопленные изображения и вложения, а если и это не помогает — нужно двойным Esc вернуться за ход с крупным содержимым или начать с/clear. Большие файлы лучше указывать путём, а не вставлять: тогда Claude прочитает их частями.
Что пробовали пользователи на старых версиях
В обсуждениях 2025–2026 годов, в основном о версиях до исправлений, пользователи сообщали о таких обходных путях: выгрузить беседу через /export, откатить беседу (не код) и повторить сжатие; выйти и вернуться через claude --resume, затем /compact; цепочку /clear → /resume → /compact; при ошибке сжатия про «thinking blocks cannot be modified» — сменить модель через /model после возобновления. Это свидетельства пользователей, а не гарантированные решения. Обсуждение GitHub #7530 о Conversation too long закрыли в апреле 2026 года как дубликат с пометкой об исправлении в 2.1.85, но часть пользователей писала, что ошибка повторялась и позже.
Prompt is too long после автосжатия: сначала ошибка после двоеточия
С версии 2.1.229 сообщение о неудачном автосжатии называет причину после разделителя: Prompt is too long · automatic compaction failed:, а дальше исходная ошибка. Это может быть недоступная модель или сбой авторизации. Пока вы её не устраните, /compact будет падать на ней же, поэтому сначала чините то, что написано после двоеточия. До 2.1.229 выводилось голое Prompt is too long.
В интерактивной сессии переполненное окно выглядит так: Context limit reached · /compact or /clear to continue. Если вы отключили автосжатие в /config, с версии 2.1.235 строка добавляет auto-compact is off · /config to turn it on.
Ещё два случая из того же раздела справочника:
- Ошибка появляется около 200 тыс. токенов на модели с бо́льшим окном. Частая причина — идентификатор модели, который Claude Code не узнаёт (например, псевдоним в шлюзе): для таких ID он принимает окно в 200 тыс. токенов. По документации о настройке моделей Claude Code настоящий размер окна задают так: сначала
claude update(модель может оказаться новее вашей версии); для шлюзового имени известной модели — запись вmodelOverrides; для модели с окном 1 млн — суффикс[1m]к ID; в остальных случаях — переменнаяCLAUDE_CODE_MAX_CONTEXT_TOKENS. Prompt is too long · this conversation is a single exchange and cannot be compacted— в беседе один обмен, сжимать нечего. Место занято самим запросом и тем, что Claude Code отправляет с каждым запросом: системным промптом, описаниями инструментов, вложениями. Поможет/clearи запрос с меньшим объёмом вставленного текста.
Autocompact is thrashing: сжатие сработало, но окно сразу заполнилось
Полный текст: Autocompact is thrashing: the context refilled to the limit within 3 turns of the previous compact, 3 times in a row. Сжатие при этом прошло успешно, но читаемый файл или вывод инструмента трижды подряд снова заполнял окно в течение трёх ходов. С версии 2.1.89 Claude Code в такой ситуации останавливается, чтобы не тратить запросы впустую. С 2.1.286 ошибка дополнительно сообщает, если резервная модель уменьшила окно с 1 млн до 200 тыс. токенов.
Порядок восстановления по руководству по устранению неполадок Claude Code:
- Попросите Claude читать большой файл частями: конкретный диапазон строк или функцию, а не файл целиком.
- Запустите
/compactс фокусом, который отбрасывает объёмный вывод, например/compact keep only the plan and the diff. - Вынесите работу с большими файлами в субагента: у него собственное контекстное окно.
- Если ранняя часть беседы больше не нужна —
/clear.
Если после /clear ошибка возвращается, откройте /context и сравните строку Messages с остальными. Если больше всех Messages, окно снова забивает файл или вывод инструмента в новой беседе — повторите шаги 1–3. Если остальные строки вместе крупнее, места не хватает уже из-за того, что загружается при старте: описаний MCP-инструментов, файлов памяти. Как их сократить, разобрано в статье «Как сжать контекст в Claude Code: MCP, Tool Search и большие ответы».
Сжатие идёт долго или зависло: Esc, Ctrl+C и claude --resume
С версии 2.1.283 таймер индикатора запускается в начале сжатия и считает токены пересказа по мере их генерации: пока число растёт, сжатие идёт. С 2.1.228 во время сжатия показываются и обратный отсчёт до повтора, и подсказка о зависании.
- Esc прерывает сжатие, и Claude Code отвечает
Compaction canceled.. - Если интерфейс не реагирует, нажмите Ctrl+C; если и это не помогло, закройте терминал.
- Беседа при перезапуске не теряется: запустите
claude --resumeв той же папке и выберите сессию.
В полноэкранном режиме версия 2.1.301 исправила кратковременное зависание интерфейса во время /compact и автосжатия — ещё один довод обновиться.
Not enough messages, PreCompact и DISABLE_COMPACT: это не поломка
Три ответа из таблицы описывают не сбой, а штатное поведение. Все три воспроизведены на версии 2.1.301.
Not enough messages to compact. — пересказывать нечего: в беседе один обмен, или её только что сжали. В проверке повторный /compact сразу после успешного сжатия вернул ровно эту строку. Если при этом контекстное окно полное, его занимает один большой запрос плюс то, что Claude Code отправляет с каждым запросом. Помогут /clear и повторная отправка с меньшим объёмом вставленного текста или вложений, отключение неиспользуемых MCP-серверов командой /mcp disable с именем сервера, сокращение крупных файлов CLAUDE.md.
Compaction blocked by PreCompact hook: — сжатие запретил хук. Хук PreCompact может заблокировать сжатие кодом выхода 2 или ответом {"decision":"block"} (возможность появилась в 2.1.105). В проверке хук, который писал причину в stderr и завершался с кодом 2, привёл к ответу вида Compaction blocked by PreCompact hook: [команда хука]: текст причины. Посмотрите настроенные хуки командой /hooks и уберите или поправьте тот, что блокирует сжатие. Чем хуки отличаются от навыков и слэш-команд, объясняется в статье «Claude Code: чем отличаются hooks, skills и слэш-команды».
/compact isn't available in this environment. — задана переменная DISABLE_COMPACT=1, которая отключает и автосжатие, и ручной /compact. Переменные с похожими названиями действуют по-разному:
| Настройка | Автосжатие | Ручной /compact |
|---|---|---|
DISABLE_COMPACT=1 | выключено | недоступен |
DISABLE_AUTO_COMPACT=1 | выключено, вместе со сжатием при простое | работает |
autoCompactEnabled: false или переключатель Auto-compact в /config | выключено | работает |
Чтобы сбой не вернулся: порог auto-compact и состояние в файлах
Не выключайте автосжатие без причины. По справочнику ошибок, включённое по умолчанию автосжатие обычно и предотвращает Prompt is too long. Если вы всё же держите его выключенным, запускайте /compact сами, пока окно не заполнилось.
Знайте свой порог. Если окно автосжатия не задано, Claude Code сжимает беседу у предела контекста модели. Согласно той же документации о настройке моделей, для моделей с родным окном в 1 млн токенов (Fable, Sonnet 5 и новее, Haiku 5.5, Opus 4.7 и новее) это около 967 тыс. токенов. У Sonnet и Opus 4.6 без расширенного контекста — 200 тыс. Для неизвестных идентификаторов моделей, например псевдонимов шлюза, Claude Code тоже предполагает 200 тыс. Изменить порог можно так:
- командой
/autocompactс числом токенов от 100 тыс. до 1 млн или значениемauto; с версии 2.1.288 значение сохраняется отдельно для каждой модели; - настройкой
autoCompactWindowили флагом--autocompact; - переменной
CLAUDE_CODE_AUTO_COMPACT_WINDOW— только целым числом, она важнее остальных способов.
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE умеет только понижать процент срабатывания. Чем раньше срабатывает сжатие, тем меньше беседа, которую нужно пересказать, а значит, меньше шанс получить Conversation too long — это простое следствие механики, а не официальная рекомендация.
Учтите сжатие при простое. С версии 2.1.299 беседа больше 200 тыс. токенов, оставленная без дела примерно на 54 минуты, сжимается до того, как истечёт часовой кэш промптов. Отключается это настройкой "idleCompaction": false. Как промахи кэша влияют на расход токенов, разобрано в статье «Claude Code cache miss и стоимость токенов: почему один turn внезапно дорогой».
Держите состояние работы в файлах, а не только в беседе. После сжатия заново подгружаются с диска CLAUDE.md в корне проекта, правила без привязки к путям, автоматическая память и план, написанный в plan mode. Claude Code перечитывает до пяти последних изменённых файлов, с которыми работал Claude; файл больше 5 000 токенов возвращается только ссылкой на путь. Вызванные навыки (skills) возвращаются с лимитом 5 000 токенов на навык и 25 000 в сумме. Правила, привязанные к путям, и вложенные CLAUDE.md подгружаются снова, только когда понадобятся (подробнее — в документации о контекстном окне Claude Code). Поэтому перед /clear попросите Claude записать в файл плана или в CLAUDE.md текущую задачу, принятые решения и следующий шаг. Где хранить такие правила, чтобы они переживали сжатие, описано в статье «Память Claude Code в 2026: CLAUDE.md, auto memory и когда нужен плагин».
/clear при этом обратим: прежнюю беседу можно вернуть через /resume или через пункт с пометкой «previous session» вверху меню отката — он доступен, пока вы не вышли из Claude Code.
Когда писать в /feedback или issue на GitHub
Если после claude update на текущей версии тот же текст повторяется, это уже повод для отчёта. Команда /feedback отправляет его прямо из сессии; с версии 2.1.149 в отчёт входит и беседа до сжатия, поэтому сбой в длинной сессии проще разобрать. Второй путь — issue в репозитории anthropics/claude-code на GitHub. В отчёте укажите версию из claude --version, точный текст после двоеточия, вид сжатия (ручное, автоматическое или Summarize из меню отката), модель и способ подключения (подписка, API-ключ, Bedrock или шлюз), а также повторяется ли ошибка после /clear.
Источники8
Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 16 окт. 2026 г..
Источники8
Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 16 окт. 2026 г..
- 1.справочника по ошибкам Claude Codecode.claude.com/docs/ru/errors
- 2.журналу изменений Claude Codegithub.com/anthropics/claude-code/blob/main/CHANGELOG.md
- 3.разделе о точках отката в документации Claude Codecode.claude.com/docs/ru/checkpointing
- 4.GitHub #7530 о Conversation too longgithub.com/anthropics/claude-code/issues/7530
- 5.документации о настройке моделей Claude Codecode.claude.com/docs/ru/model-config
- 6.руководству по устранению неполадок Claude Codecode.claude.com/docs/ru/troubleshooting
- 7.документации о контекстном окне Claude Codecode.claude.com/docs/ru/context-window
- 8.anthropics/claude-code на GitHubgithub.com/anthropics/claude-code/issues





