Перейти к основному содержанию

Ошибка сжатия Claude Code: как починить /compact по тексту ошибки

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

LaoZhang AI TeamОпубликовано11 мин чтения
Содержание
Обложка: уведомление Error compacting conversation в Claude Code, строка Error during compaction: с настоящей причиной и первый шаг — откат, /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, обрыв сети и само красное уведомление в этой проверке не вызывались.

Схема: от текста рядом с Error compacting conversation к первому действию — откат, /compact с фокусом, исправление причины или /clear

Сначала 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.

  1. Сохраните копию беседы: /export compact-backup.txt выгружает её в обычный текстовый файл.
  2. Очистите поле ввода и дважды нажмите Esc или введите /rewind. Если в поле есть текст, первый двойной Esc только очистит его; текст сохранится в истории, вернуть его можно стрелкой вверх.
  3. Выберите сообщение на несколько ходов раньше и действие:
    • Restore conversation — беседа возвращается к этой точке, файлы на диске остаются как сейчас. Именно это и предлагает текст ошибки.
    • Summarize from here — сжимает всё начиная с выбранного сообщения; ранние инструкции остаются дословно.
    • Summarize up to here — сжимает всё до выбранного сообщения, поздние сообщения не трогает.
  4. Если вы выбрали Restore conversation, снова запустите /compact и укажите, что сохранить, например /compact оставь план, список изменённых файлов и нерешённые ошибки. Текст выбранного сообщения при откате возвращается в поле ввода; если он мешает набрать команду, сотрите его и отправьте позже.

Пункты Summarize — тоже сжатие, только частичное: если и они заканчиваются тем же уведомлением, выберите Restore conversation. Чтобы задать фокус пересказа в меню, выделите пункт Summarize стрелками и впишите указание в строку add context (optional), затем нажмите Enter; цифровая клавиша запускает пересказ сразу, без указаний. Пункты Restore code откатывают файлы — для борьбы с ошибкой сжатия они не нужны. Подробности — в разделе о точках отката в документации Claude Code.

Меню отката Claude Code: что сохраняют и что сжимают Restore conversation, Summarize from here и Summarize up to here

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:

  1. Попросите Claude читать большой файл частями: конкретный диапазон строк или функцию, а не файл целиком.
  2. Запустите /compact с фокусом, который отбрасывает объёмный вывод, например /compact keep only the plan and the diff.
  3. Вынесите работу с большими файлами в субагента: у него собственное контекстное окно.
  4. Если ранняя часть беседы больше не нужна — /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 г..

  1. 1.справочника по ошибкам Claude Codecode.claude.com/docs/ru/errors
  2. 2.журналу изменений Claude Codegithub.com/anthropics/claude-code/blob/main/CHANGELOG.md
  3. 3.разделе о точках отката в документации Claude Codecode.claude.com/docs/ru/checkpointing
  4. 4.GitHub #7530 о Conversation too longgithub.com/anthropics/claude-code/issues/7530
  5. 5.документации о настройке моделей Claude Codecode.claude.com/docs/ru/model-config
  6. 6.руководству по устранению неполадок Claude Codecode.claude.com/docs/ru/troubleshooting
  7. 7.документации о контекстном окне Claude Codecode.claude.com/docs/ru/context-window
  8. 8.anthropics/claude-code на GitHubgithub.com/anthropics/claude-code/issues
Ещё по теме Claude Code
Схема расхода контекста Claude Code при работе с MCP
Claude Code

Как сжать контекст в Claude Code: MCP, Tool Search и большие ответы

Сначала определите, когда расходуется контекст: до вызова MCP, после большого ответа или за время долгой сессии. Затем измените только этот источник нагрузки и повторите исходную задачу, сохранив нужный доступ и доказательства.

7 мин
Выбор первого навыка Claude Code под рабочую задачу
Claude Code

Лучшие скиллы для Claude Code: что выбрать первым и как установить

Для поиска ошибок в изменениях используйте /code-review, для проверки работающего приложения — /verify. Официальные frontend-design, webapp-testing и документные навыки стоит добавлять под свою задачу, а затем проверять на небольшом законченном примере.

10 мин
Выбор первого MCP для Claude Code по рабочей задаче
Claude Code

Лучшие MCP для Claude Code, которые стоит подключать первыми в 2026 году

GitHub нужен для работы с PR и задачами, Context7 — для документации библиотек, Playwright — для проверки интерфейса, Sentry — для разбора ошибок. Начните с недостающего доступа и проверьте один полезный результат, прежде чем добавлять следующий сервер.

11 мин