Надпись Reconnecting означает, что Codex пытается восстановить прерванное соединение. Она не доказывает, что виноваты proxy, VPN, учётная запись или сама модель. Один и тот же видимый цикл может возникнуть у отдельной сохранённой задачи, конкретного клиента, при проблеме аутентификации, на сетевом маршруте или во время временного сбоя сервиса.
Поэтому не начинайте с удаления ~/.codex, всех session-файлов и credentials. Изменения проекта обычно уже находятся на диске, но незавершённый чат хранит полезный контекст: последнюю инструкцию, approvals, вывод инструментов и точку, до которой работа точно дошла.
Если после Reconnecting 1/5 … 5/5 появляется:
textstream disconnected before completion
скопируйте последнюю инструкцию, запишите затронутые файлы и последнее подтверждённое действие. Не повторяйте сразу команду, которая отправляет сообщение, публикует данные или выполняет другой необратимый шаг: запрос мог завершиться, а финальное событие не дошло до интерфейса.
Четыре наблюдения вместо десяти случайных исправлений
Оставьте проблемный чат как есть и проверьте:
- Работает ли новый небольшой read-only чат в том же проекте.
- Выполняется ли в интегрированном терминале
pwdилиgit status. - Работает ли такой же маленький запрос через другую поверхность Codex — CLI, Desktop или IDE extension.
- Повторяется ли ошибка после полного перезапуска только этого клиента.
Сопоставьте результат с границей:
| Наблюдение | Что уже удалось отделить | Следующее безопасное действие |
|---|---|---|
| Новый чат работает, старый продолжает переподключаться | Сбой уже старше текущего проекта и уже одной сохранённой задачи | Продолжить в новом чате по краткой передаче; старый не удалять |
| CLI работает, Desktop нет | Учётная запись и проект не полностью недоступны | Сравнить версии и полностью перезапустить Desktop |
| Все клиенты Codex не отвечают, но shell работает | Локальная команда не является главным блокером | Проверить auth, версии, статус сервиса и одну сетевую переменную |
git status также висит | Есть отдельная локальная проблема репозитория, файловой системы или процесса | Сначала восстановить базовую команду |
| Несколько клиентов не работают в двух разрешённых сетях | Вероятность широкого сбоя клиента, аккаунта или сервиса выше | Прекратить очистку данных и собрать диагностику |

Официальный раздел OpenAI о зависших состояниях рекомендует сначала проверить ожидание approval, выполнить простую команду в терминале и попробовать новый сфокусированный чат. Это не окончательный диагноз, а безопасный способ определить масштаб.
Версия важна только вместе с названием клиента
Для CLI сохраните вывод:
bashcodex --version codex --help
У Desktop версия находится в окне About, у IDE extension — на странице расширения. Фраза «у меня последняя версия» недостаточна: OpenAI отдельно предупреждает, что Desktop и CLI могут содержать разные версии Codex.
Проверить обновление стоит до редактирования конфигурации. В официальном changelog ChatGPT и Codex для CLI 0.148.0 указано восстановление turn при временных сбоях provider. В обновлении клиента того же дня исправлялись задачи, которые оставались недоступными после idle или reconnecting. Это подтверждает, что часть таких симптомов исправляется на уровне клиента.
Но release note не говорит, что любое переподключение вызвано старой сборкой. После обновления повторите тот же минимальный запрос. Если изменилось сразу несколько условий, результат нельзя связать с одной причиной.
Не смешивайте переподключение с точной ошибкой
Полный текст может направить в более узкую инструкцию:
access token could not be refreshed— отдельная диагностика обновления токена;- HTTP 429, usage limit или reset time — лимиты Codex;
- явный timeout команды, MCP server или cloud config bundle — границы ожидания Codex;
- только
stream disconnected before completionи повторные попытки — пока это обрыв потока клиента, а не доказанный лимит или auth failure.
Не выполняйте 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.

Когда перезапускать, а когда продолжать в новом чате
Если неисправна одна задача, создайте новый чат и передайте только цель, выполненные шаги, список файлов и оставшуюся неопределённость. Попросите сначала проверить 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 или приватный код.
Исправление можно считать проверенным, когда известна его область: один сохранённый чат, один клиент, один сетевой маршрут или все поверхности. Такой вывод позволяет повторить тест и безопасно продолжить работу — в отличие от случайной очистки всех данных.



