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

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

- URL: https://blog.laozhang.ai/ru/posts/claude-code-error-compacting-conversation
- Published: 2026-10-16
- Updated: 2026-10-16
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Topic: Claude Code
- Tags: Claude Code, Ошибки, Контекстное окно, /compact, Разработка

---
Красное уведомление `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](https://code.claude.com/docs/ru/errors). `Conversation too long`, оба варианта `Compaction failed`, thrashing, обрыв сети и само красное уведомление в этой проверке не вызывались.

![Схема: от текста рядом с Error compacting conversation к первому действию — откат, /compact с фокусом, исправление причины или /clear](https://blog.laozhang.ai/posts/ru/claude-code-error-compacting-conversation/img/error-to-first-step.webp)

## Сначала claude update: какие сбои сжатия уже исправлены

Многие тексты из таблицы относятся к ошибкам, которые разработчики уже закрыли. По [журналу изменений Claude Code](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) это, в частности:

- **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: причина по тексту ошибки»](https://blog.laozhang.ai/ru/posts/aws-claude-400-error));
- **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](https://code.claude.com/docs/ru/checkpointing).

![Меню отката Claude Code: что сохраняют и что сжимают Restore conversation, Summarize from here и Summarize up to here](https://blog.laozhang.ai/posts/ru/claude-code-error-compacting-conversation/img/rewind-menu-options.webp)

### 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](https://github.com/anthropics/claude-code/issues/7530) закрыли в апреле 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](https://code.claude.com/docs/ru/model-config) настоящий размер окна задают так: сначала `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](https://code.claude.com/docs/ru/troubleshooting):

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 и большие ответы»](https://blog.laozhang.ai/ru/posts/claude-code-mcp-context-overload).

## Сжатие идёт долго или зависло: 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 и слэш-команды»](https://blog.laozhang.ai/ru/posts/claude-code-hooks-slash-commands-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 внезапно дорогой»](https://blog.laozhang.ai/ru/posts/claude-code-cache-miss-token-costs).

**Держите состояние работы в файлах, а не только в беседе.** После сжатия заново подгружаются с диска `CLAUDE.md` в корне проекта, правила без привязки к путям, автоматическая память и план, написанный в plan mode. Claude Code перечитывает до пяти последних изменённых файлов, с которыми работал Claude; файл больше 5 000 токенов возвращается только ссылкой на путь. Вызванные навыки (skills) возвращаются с лимитом 5 000 токенов на навык и 25 000 в сумме. Правила, привязанные к путям, и вложенные `CLAUDE.md` подгружаются снова, только когда понадобятся (подробнее — в [документации о контекстном окне Claude Code](https://code.claude.com/docs/ru/context-window)). Поэтому перед `/clear` попросите Claude записать в файл плана или в `CLAUDE.md` текущую задачу, принятые решения и следующий шаг. Где хранить такие правила, чтобы они переживали сжатие, описано в статье [«Память Claude Code в 2026: CLAUDE.md, auto memory и когда нужен плагин»](https://blog.laozhang.ai/ru/posts/claude-code-memory).

`/clear` при этом обратим: прежнюю беседу можно вернуть через `/resume` или через пункт с пометкой «previous session» вверху меню отката — он доступен, пока вы не вышли из Claude Code.

## Когда писать в /feedback или issue на GitHub

Если после `claude update` на текущей версии тот же текст повторяется, это уже повод для отчёта. Команда `/feedback` отправляет его прямо из сессии; с версии 2.1.149 в отчёт входит и беседа до сжатия, поэтому сбой в длинной сессии проще разобрать. Второй путь — issue в репозитории [anthropics/claude-code на GitHub](https://github.com/anthropics/claude-code/issues). В отчёте укажите версию из `claude --version`, точный текст после двоеточия, вид сжатия (ручное, автоматическое или Summarize из меню отката), модель и способ подключения (подписка, API-ключ, Bedrock или шлюз), а также повторяется ли ошибка после `/clear`.

## Источники

Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 2026-10-16.

- [справочника по ошибкам Claude Code](https://code.claude.com/docs/ru/errors) (code.claude.com)
- [журналу изменений Claude Code](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) (github.com)
- [разделе о точках отката в документации Claude Code](https://code.claude.com/docs/ru/checkpointing) (code.claude.com)
- [GitHub #7530 о Conversation too long](https://github.com/anthropics/claude-code/issues/7530) (github.com)
- [документации о настройке моделей Claude Code](https://code.claude.com/docs/ru/model-config) (code.claude.com)
- [руководству по устранению неполадок Claude Code](https://code.claude.com/docs/ru/troubleshooting) (code.claude.com)
- [документации о контекстном окне Claude Code](https://code.claude.com/docs/ru/context-window) (code.claude.com)
- [anthropics/claude-code на GitHub](https://github.com/anthropics/claude-code/issues) (github.com)
