AIFreeAPI Logo

Codex постоянно переподключается: сохраните задачу и сузьте причину

A
5 min readOpenAI Codex

Счётчик Reconnecting 1/5–5/5 не называет причину. Сначала сохраните последнюю инструкцию и состояние файлов, затем проверьте новый чат, базовую команду и только одно сетевое условие.

Схема безопасной диагностики Codex Reconnecting: сохранить контекст, провести четыре минимальных наблюдения, определить область сбоя и выбрать обратимое действие

Надпись Reconnecting означает, что Codex пытается восстановить прерванное соединение. Она не доказывает, что виноваты proxy, VPN, учётная запись или сама модель. Один и тот же видимый цикл может возникнуть у отдельной сохранённой задачи, конкретного клиента, при проблеме аутентификации, на сетевом маршруте или во время временного сбоя сервиса.

Поэтому не начинайте с удаления ~/.codex, всех session-файлов и credentials. Изменения проекта обычно уже находятся на диске, но незавершённый чат хранит полезный контекст: последнюю инструкцию, approvals, вывод инструментов и точку, до которой работа точно дошла.

Если после Reconnecting 1/55/5 появляется:

text
stream disconnected before completion

скопируйте последнюю инструкцию, запишите затронутые файлы и последнее подтверждённое действие. Не повторяйте сразу команду, которая отправляет сообщение, публикует данные или выполняет другой необратимый шаг: запрос мог завершиться, а финальное событие не дошло до интерфейса.

Четыре наблюдения вместо десяти случайных исправлений

Оставьте проблемный чат как есть и проверьте:

  1. Работает ли новый небольшой read-only чат в том же проекте.
  2. Выполняется ли в интегрированном терминале pwd или git status.
  3. Работает ли такой же маленький запрос через другую поверхность Codex — CLI, Desktop или IDE extension.
  4. Повторяется ли ошибка после полного перезапуска только этого клиента.

Сопоставьте результат с границей:

НаблюдениеЧто уже удалось отделитьСледующее безопасное действие
Новый чат работает, старый продолжает переподключатьсяСбой уже старше текущего проекта и уже одной сохранённой задачиПродолжить в новом чате по краткой передаче; старый не удалять
CLI работает, Desktop нетУчётная запись и проект не полностью недоступныСравнить версии и полностью перезапустить Desktop
Все клиенты Codex не отвечают, но shell работаетЛокальная команда не является главным блокеромПроверить auth, версии, статус сервиса и одну сетевую переменную
git status также виситЕсть отдельная локальная проблема репозитория, файловой системы или процессаСначала восстановить базовую команду
Несколько клиентов не работают в двух разрешённых сетяхВероятность широкого сбоя клиента, аккаунта или сервиса вышеПрекратить очистку данных и собрать диагностику
Безопасная карта Codex Reconnecting: сохранение контекста, четыре наблюдения, определение области сбоя, обратимые действия, проверка версий, логи, сессии и различие сети команд и потока ответов
Безопасная карта Codex Reconnecting: сохранение контекста, четыре наблюдения, определение области сбоя, обратимые действия, проверка версий, логи, сессии и различие сети команд и потока ответов

Официальный раздел OpenAI о зависших состояниях рекомендует сначала проверить ожидание approval, выполнить простую команду в терминале и попробовать новый сфокусированный чат. Это не окончательный диагноз, а безопасный способ определить масштаб.

Версия важна только вместе с названием клиента

Для CLI сохраните вывод:

bash
codex --version codex --help

У Desktop версия находится в окне About, у IDE extension — на странице расширения. Фраза «у меня последняя версия» недостаточна: OpenAI отдельно предупреждает, что Desktop и CLI могут содержать разные версии Codex.

Проверить обновление стоит до редактирования конфигурации. В официальном changelog ChatGPT и Codex для CLI 0.148.0 указано восстановление turn при временных сбоях provider. В обновлении клиента того же дня исправлялись задачи, которые оставались недоступными после idle или reconnecting. Это подтверждает, что часть таких симптомов исправляется на уровне клиента.

Но release note не говорит, что любое переподключение вызвано старой сборкой. После обновления повторите тот же минимальный запрос. Если изменилось сразу несколько условий, результат нельзя связать с одной причиной.

Не смешивайте переподключение с точной ошибкой

Полный текст может направить в более узкую инструкцию:

Не выполняйте logout из-за общего обрыва stream. Выход меняет состояние аутентификации и мешает сравнению. Перелогин нужен, когда ошибка прямо указывает на токен, identity или workspace, либо когда этот вариант уже отделён от сети и версии.

Проверяйте сеть там, где действительно работает Codex

Если ChatGPT открывается в браузере, это доказывает маршрут браузера. Desktop, terminal, VS Code extension host, WSL, container и Remote SSH могут использовать другие DNS, сертификаты, proxy и firewall policy.

Сначала определите host процесса. Затем оставьте неизменными account, project, client version и размер запроса и поменяйте одно разрешённое условие:

  • сравните корпоративную сеть с разрешённой обычной сетью;
  • временно сравните VPN on/off, если это допускает политика;
  • убедитесь, что обязательный локальный proxy слушает ожидаемый порт;
  • для WSL, container или Remote SSH делайте проверку из этой среды, а не с ноутбука.

Запишите время, последний status и полный error до и после. Если другая сеть помогает, исходный маршрут действительно участвует в проблеме. Одной удачи всё равно мало, чтобы назвать точную причину: DNS, TLS inspection, WebSocket, proxy rule или промежуточное устройство.

Proxy команд и поток ответов — разные плоскости

В интернете часто советуют одновременно создать .env, задать HTTP_PROXY и «выключить WebSocket». Но следует различать:

  • соединение клиента Codex, по которому приходит ответ модели;
  • сетевой доступ команд, выполняемых Codex в sandbox.

В официальной спецификации permissions network proxy профиля описан именно для sandboxed command traffic. Он может передавать инструментам HTTP(S) и WebSocket proxy variables. Такая настройка способна изменить работу curl или package manager, но сама по себе не доказывает изменение потока Desktop App.

Не добавляйте недокументированный ключ в config.toml как постоянное «исправление». Если тест необходим, сохраните исходное значение, измените одну строку и подготовьте откат. Для custom model provider используйте документацию именно этого provider и текущей версии Codex.

Матрица масштаба Codex Reconnecting от четырёх наблюдений к одному старому чату, клиенту, нескольким клиентам, локальным командам или двум сетям, с обратимым действием и отдельными маршрутами точных ошибок
Матрица масштаба Codex Reconnecting от четырёх наблюдений к одному старому чату, клиенту, нескольким клиентам, локальным командам или двум сетям, с обратимым действием и отдельными маршрутами точных ошибок

Когда перезапускать, а когда продолжать в новом чате

Если неисправна одна задача, создайте новый чат и передайте только цель, выполненные шаги, список файлов и оставшуюся неопределённость. Попросите сначала проверить git status, а не повторять все действия. Старый чат сохраните для session ID и логов.

Если неисправен один клиент, дождитесь завершения остальных active tasks и полностью завершите приложение или IDE host. Закрытое окно не всегда означает завершённый background process. Официальная инструкция OpenAI рекомендует перезапуск только после завершения активных чатов.

Если одновременно не работают несколько клиентов, проверьте OpenAI Status, запишите локальное время и выполните одну сетевую проверку. Не переустанавливайте клиент несколько раз: это создаёт новую переменную, но не добавляет доказательств.

После успешного reconnect проверьте фактическое состояние файлов и внешних систем. Команда могла выполниться, даже если сообщение о результате потерялось.

Сессии и логи: сохранять, а не стирать

OpenAI указывает следующие расположения:

  • логи App на macOS: ~/Library/Logs/com.openai.codex/YYYY/MM/DD;
  • активные transcripts: $CODEX_HOME/sessions, обычно ~/.codex/sessions;
  • архивные transcripts: $CODEX_HOME/archived_sessions.

В них могут быть prompts, пути, имена репозиториев и tool output. Перед передачей проверьте данные и удалите секреты. Не загружайте весь каталог Codex.

Только если один старый чат стабильно ломается, а новые в том же проекте работают, есть смысл изолировать его transcript. Сначала сделайте восстанавливаемую копию, переместите только точный файл и повторите минимальный тест. Массовое удаление по дате не является диагностикой.

Для обращения через /feedback подготовьте поверхность и версию Codex, ОС и реальный host, время с timezone, последовательность Reconnecting, результат нового чата, другой поверхности, базовой команды и одной сетевой проверки, а также минимальный редактированный фрагмент лога. Не включайте token, cookie, email, внутреннее имя workspace или приватный код.

Исправление можно считать проверенным, когда известна его область: один сохранённый чат, один клиент, один сетевой маршрут или все поверхности. Такой вывод позволяет повторить тест и безопасно продолжить работу — в отличие от случайной очистки всех данных.