Codex: пропали проекты после обновления — данные обычно на диске
Пропали проекты в Codex? Обычно они целы в state_5.sqlite, пуст лишь список панели. Сменили аккаунт — обновитесь до 26.1106.51428, иначе скопируйте .codex.
Если после обновления десктопного приложения ChatGPT (бывшего приложения Codex) раздел «Проекты» в боковой панели пуст, показывает «Нет проектов» или в нём не хватает части папок, работа почти всегда осталась на диске. Проекты записаны в базе state_5.sqlite в папке .codex, переписка — в файлах сессий рядом. Пропадает другое: отдельный список в файле .codex-global-state.json, по которому строится боковая панель. При запуске приложение переносит проекты только из этого списка в базу, а обратно ничего не возвращает, поэтому пустая панель при целой базе так и остаётся пустой. Речь о локальных папках, добавленных в Codex, а не о «Проектах» чат-версии ChatGPT, где хранятся обычные беседы.
Первый шаг зависит от того, что произошло перед этим. Если вы переключали аккаунт или рабочее пространство, обновите приложение до сборки 26.1106.51428 и полностью выйдите из него, а не просто закройте окно: 11 ноября 2026 года трое пользователей сообщили, что в этой сборке проекты вернулись. Если же список опустел после аварийного выключения или обычного обновления, сначала полностью закройте приложение и скопируйте папку .codex целиком. Пока копии нет, не добавляйте папки заново через «Добавить проект», не переустанавливайте приложение и не запускайте скрипты восстановления из Reddit или GitHub.
Локальные способы не помогут в одном случае: когда в базе остался один проект, а файлов сессий нет и открытие старого чата заканчивается ошибкой no rollout found for thread id. Тогда вернуть работу могут только резервные копии системы (Time Machine, история файлов Windows) или поддержка OpenAI. Для повреждённого файла состояния и сбоя миграции проектов при запуске после обновления исправления по состоянию на 12 ноября 2026 года нет: новые жалобы приходили ещё 10 ноября.
Почему панель «Проекты» пуста, хотя база проектов цела
Приложение хранит регистрацию проектов в двух местах, и боковая панель читает не то, которое надёжнее. Первое место — база ~/.codex/state_5.sqlite с таблицами projects и project_roots (дальше — база проектов). Второе — ключ local-projects в файле ~/.codex/.codex-global-state.json (дальше — список панели): каждая запись в нём содержит идентификатор, имя, пути к папкам и даты. Идентификаторы в двух хранилищах разные, их связывает отдельная таблица соответствий app-server-project-id-by-legacy-project-id-by-host в том же файле.
Как это устроено, видно по копиям этих файлов и коду приложения: 12 ноября 2026 года их прочитали на одном Mac с ChatGPT desktop 26.1103.60933 (build 25894) под одним аккаунтом, только на копиях и без изменения рабочих файлов. Проекты на этом Mac не пропадали, так что прочитано нормальное состояние. В базе было 17 проектов и 18 корневых папок, в списке панели — те же 17 проектов, и все 17 находились через таблицу соответствий. Из 1 458 чатов в базе ни один не был привязан к проекту через столбец project_id, а 1 246 попадали в проекты по рабочей папке.
При каждом запуске приложение читает базу проектов, проходит по списку панели и дописывает в базу то, чего там нет. Обратного шага в коде нет: функция сохранения обновляет только записи, уже присутствующие в списке панели, а при изменениях окну сообщается именно об обновлении ключа local-projects. Отсюда вывод, совпадающий с выводами пользователей, которые разбирали пакет приложения в issue #54538 о пустом local-projects при целой базе и #58397: если список панели опустел, а база цела, панель остаётся пустой, хотя все данные на месте. На пустом списке в момент сбоя этот вывод не проверялся.
Есть и третья деталь: состояние интерфейса хранится отдельно для каждой пары «пользователь + аккаунт» в ключе electron-account-renderer-state-v1. Состояние неактивного аккаунта лежит в разделе inactive, поэтому после переключения на аккаунт, у которого своего сохранённого списка нет, панель может оказаться пустой. На проверенном Mac раздел inactive пуст, потому что там использовался один аккаунт; эксперимент со сменой аккаунта не проводился.
Какой у вас случай: смена аккаунта, сбой питания или обновление
Одинаковый симптом даёт несколько разных причин, и от причины зависит первый шаг. Определить свой случай можно по тому, что было перед исчезновением, и по строкам лога; файлы для этого менять не нужно. Ниже — обобщение сообщений пользователей в GitHub и на форуме OpenAI, а не официальная классификация.
Что было перед этим
Что видно
Вероятная причина
Первый шаг
Переключение аккаунта или рабочего пространства, выход и повторный вход (с 6 ноября 2026 года, сборки 26.1103.x)
Список пуст, иногда снова появляется экран первого запуска; в базе проекты есть
Приложение показывает сохранённое состояние другого аккаунта
Обновиться до 26.1106.51428 и полностью выйти
Аварийное выключение ПК или зависание во время обновления
В логе Failed to load global state и Unexpected token '\^@'
Файл .codex-global-state.json испорчен нулевыми байтами, приложение начинает с пустого состояния
Закрыть приложение, полная копия .codex, искать старые копии файла
Обычное обновление без смены аккаунта
В логе как обычно projectCount=N, панель пуста, local-projects пуст
Миграция при запуске не вернула проекты в список панели
Полная копия .codex, затем сообщение в OpenAI
Задана переменная окружения CODEX_HOME
Пусто всё сразу
Приложение читает другую папку
Проверить и убрать переменную (один подтверждённый случай)
Открытие старого чата даёт no rollout found for thread id
Чатов нет ни в «Недавних», ни в поиске; в базе один проект, файлов сессий почти нет
Данные действительно удалены
Резервные копии системы, поддержка OpenAI
Проекты на месте
Нет только части чатов
Ограничение на последние 50 чатов
См. раздел о части чатов ниже
Третий случай не определяется по флагам миграции. Пользователи часто приводят сочетание projectsMigrated: true и threadAssignmentsMigrated: false в ключе app-server-projects-migration-by-host, но автор #58397 предупреждает, что эти значения сами по себе ничего не доказывают, а на проверенном Mac 12 ноября 2026 года было то же сочетание при всех 17 проектах в панели. Смотреть нужно на другое: пуст ли local-projects и есть ли проекты в базе.
Как проверить, что проекты на диске, ничего не меняя
Самый быстрый признак не требует файлов: откройте «Недавние» и поиск в боковой панели. Если старые чаты там видны, сессии и база на месте, а потерялась только группировка по проектам, то есть список панели, и это один из первых трёх случаев. Если чатов нет ни там, ни там, это ещё не значит, что они удалены, потому что поиск, по разбору пользователей, охватывает только загруженные чаты; ответ дадут файлы сессий из пятого шага.
Дальше проверка сводится к сравнению трёх чисел: сколько проектов в базе, сколько записей в списке панели и сколько файлов сессий. Все шаги ниже только читают данные, а файлы открываются из копии. Команды ниже выполнялись на копиях файлов на macOS 12 ноября 2026 года; на Windows те же файлы лежат в другой папке (таблица ниже), и команды придётся адаптировать.
Полностью закройте приложение: на macOS — Cmd+Q или пункт «Выйти из ChatGPT» в меню приложения; закрытие окна крестиком не завершает фоновые процессы. На Windows убедитесь, что процессы приложения завершены, — порядок описан в статье «Фоновые процессы Codex в Windows: что оставить, а что завершить». Затем скопируйте папку целиком: cp -R ~/.codex ~/codex-backup на macOS или копирование %USERPROFILE%\.codex в Проводнике на Windows.
Найдите в логах строку миграции и ошибки чтения состояния (на macOS):
bash
grep -rhE "project migration completed|Failed to load global state|Dropping invalid global state" ~/Library/Logs/com.openai.codex/2026/11 | tail -20
Строка Local app-server project migration completed projectCount=N пишется при каждом запуске, и N — это число проектов, которые приложение нашло в базе. На проверенном Mac с 2 по 9 ноября значение росло с 14 до 16 по мере добавления проектов.
Посчитайте проекты в копии базы, открыв её только для чтения:
bash
sqlite3 "file:$HOME/codex-backup/state_5.sqlite?mode=ro" "select count(*) from projects; select path from project_roots;"
Посчитайте записи в копии списка панели и состояния других аккаунтов:
bash
python3 -I -c 'import json,sys; d=json.load(open(sys.argv[1])); a=d.get("electron-account-renderer-state-v1") or {}; print("local-projects:", len(d.get("local-projects") or {}), "inactive:", len(a.get("inactive") or {}))' ~/codex-backup/.codex-global-state.json
Если команда падает с ошибкой разбора JSON, это уже ответ: файл испорчен, и это второй случай из таблицы.
Посчитайте файлы сессий: find ~/codex-backup/sessions -name 'rollout-*' | wc -l. Шаблон rollout-* учитывает и сжатые файлы .jsonl.zst, а их может быть большинство: на проверенном Mac 12 ноября 2026 года в sessions лежало 1 271 файл .jsonl.zst и только 134 файла rollout-*.jsonl. Если искать только .jsonl, почти все сессии легко принять за пропавшие.
Если в базе десятки проектов, projectCount в логе тот же, файлы сессий на месте, а local-projects равен нулю, данные целы и пустует только список панели. Ненулевой inactive при пустом списке указывает на смену аккаунта. Один проект в базе и почти пустая папка sessions означают пятый случай: пересборка списка тут не поможет.
Что искать
macOS, ChatGPT desktop 26.1103.60933
Windows, по сообщениям пользователей
База проектов
~/.codex/state_5.sqlite и файлы -wal, -shm
%USERPROFILE%\.codex\state_5.sqlite
Список панели
~/.codex/.codex-global-state.json, рядом .bak и .tmp-*
Если задана переменная CODEX_HOME, все пути из первых трёх строк начинаются с её значения, а не с .codex. Пользователи Windows не сообщали о данных проектов в AppData, а сброс профиля %APPDATA%\Codex\web\Codex в issue #55869 ничего не изменил.
Сменили аккаунт или рабочее пространство: обновитесь до 26.1106.51428
Этот случай пока единственный, для которого есть сообщения об исправлении. Порядок действий:
Обновите приложение. На macOS выберите в меню приложения «Проверить наличие обновлений…»; на Windows 11 один пользователь получил сборку через ручную проверку обновлений в Microsoft Store.
Полностью выйдите из приложения (Cmd+Q или «Выйти из ChatGPT»; на Windows — как в статье о фоновых процессах) и запустите его снова.
Войдите в тот аккаунт и то рабочее пространство, где создавались проекты, и проверьте раздел «Проекты».
Отзывы в issue #59895 о проектах, пропавших после смены аккаунта от 11 ноября 2026 года: пользователь macOS написал, что «просто дождался обновлённой версии» 26.1106.51428 и ничего не правил вручную, пользователь Windows 11 переключался между двумя рабочими пространствами Team и личным аккаунтом без потери проектов, а автор issue #60376 закрыл его словами «исправлено в 26.1106.51428». Подтвердили не все, и #59895 на 12 ноября остаётся открытым. Один пользователь отметил побочный эффект: проекты, которые он до этого пересоздал вручную, после обновления появились в двух экземплярах.
Если обновиться пока нельзя, полный выход и повторный запуск под нужным аккаунтом помог четырём пользователям в #59895, а троим — нет. Не помогает он, когда список панели текущего аккаунта действительно пуст, а проекты остались в разделе inactive другого аккаунта. Пятеро пользователей сообщили, что вернули проекты, вручную скопировав их поля из inactive обратно, но ещё один участник предупредил, что прямое копирование даёт конфликты: у него 16 привязок чатов указывали на разные проекты. Готового и проверенного способа здесь нет, поэтому до правки файла нужна полная копия .codex. Ещё один пользователь macOS сообщил, что проекты появились в новом окне (File > New Window), — это единичный отзыв.
Вернёт ли «Добавить проект» старые чаты: нет, появится новый проект
Повторное добавление той же папки через «Добавить проект» или «Открыть папку» при этой ошибке создаёт новый проект с новым идентификатором. Старые чаты к нему не привязываются, и проект открывается пустым. Об этом пишут многие пользователи в issue #46987, #47827 и #60092; поддержка OpenAI как минимум дважды предлагала именно этот шаг, и в итоге появлялись дубликаты проектов.
Это не противоречит странице устранения неполадок ChatGPT desktop, где сказано, что убранный из панели проект возвращается повторным добавлением. Документация описывает проект, который пользователь убрал сам, через пункт меню «Удалить проект». Этот пункт, кстати, только убирает проект из панели (в английском интерфейсе он называется Remove) и не удаляет файлы. При ошибке после обновления запись в базе проектов остаётся, а теряется связь в списке панели, и новая запись её не восстанавливает.
Можно ли восстановить список из .codex-global-state.json.bak
Обычно нет. По коду версии 26.1103.60933 при каждом сохранении приложение сначала записывает основной файл, а затем то же содержимое — в .codex-global-state.json.bak, через временный файл .tmp-*. На проверенном Mac основной файл и .bak побайтно совпадали. Значит, если после потери списка приложение хотя бы раз сохранило состояние, .bak тоже пуст; два пользователя в GitHub пришли к тому же, обнаружив, что .bak уже перезаписан испорченным состоянием.
Если файл не читается целиком, в логе появляется Failed to load global state, и приложение начинает с пустого состояния. Если не подходит один ключ, появляется Dropping invalid global state for key, и пропадает только этот ключ. Старое содержимое списка панели чаще находится в оставшихся временных файлах ..codex-global-state.json.tmp-* (на проверенном Mac их было 12, с июня по август 2026 года) или в резервных копиях системы — Time Machine или истории файлов Windows. Четверо пользователей сообщили, что вернули проекты, взяв нужные поля из таких старых копий.
Как пользователи пересобирали список проектов из базы
Самый подтверждённый неофициальный способ — пересобрать ключи local-projects и project-order в файле состояния по записям из базы проектов. Иногда вместе с ними восстанавливали таблицу соответствий идентификаторов и привязки чатов. Больше десяти пользователей в issue #42739, #58397, #54538 и #59895 написали, что после этого проекты вернулись. Это неофициальный способ: OpenAI его не описывала, а на Mac, где проводилась проверка 12 ноября, восстанавливать было нечего, поэтому он там не применялся. Готового официального сценария нет, и важнее шагов здесь условия, без которых пробовать не стоит:
приложение полностью закрыто, иначе при выходе оно перезапишет исправленный файл своей копией из памяти;
сделана полная копия папки .codex, к которой можно вернуться;
база state_5.sqlite не изменяется: правка столбца project_id в SQLite, по сообщениям пользователей, панель не меняет, что согласуется с пустым project_id у всех чатов на проверенном Mac.
Для этой пересборки в GitHub есть готовые инструменты: adriariu/codex-project-recovery, Swih/codex-sidebar-repair, CaptainVid/codex-local-project-recovery и CGI07/ai-repair-kit. Независимой проверки их кода нет, поэтому запускать их на рабочей папке рискованно; то же относится к скачанным файлам .bat и .py, которые вы не прочитали, и к инструкциям, предлагающим выполнить удалённый установочный скрипт. Скрипт не стоит запускать и из самого Codex: при выходе из приложения он завершается вместе с ним.
Хуже делают ещё несколько популярных шагов. Переустановка не помогла пользователю Windows в issue #58754, которому пришлось ставить приложение из офлайн-установщика MSI, а сброс рабочего пространства (Reset workspace) в issue #51216 стёр историю. Попытка угадать принадлежность чатов к проектам по рабочей папке ошибается: у одного пользователя так получилось 109 проектов вместо 28. Наконец, несколько человек сообщили, что после ручного восстановления проекты пропадали снова, поэтому копию стоит сохранить и после того, как всё вернулось.
Какие версии Codex затронуты: с июля по ноябрь 2026 года
На Windows у одной и той же сборки два номера: в Microsoft Store показывается номер пакета, а в окне «О программе» — номер приложения. Например, пакет 26.1103.4239.0 — это 26.1103.32239, а пакет 26.1103.3517.0 — 26.1103.31037. Сравнивая свою версию со списком ниже, проверьте оба номера.
Платформа
Первые сообщения
Последние сообщения
Сообщения об исправлении
Windows
26.707.72221, 14 июля 2026 года
26.1103.60933 и 26.1104.2876.0, 10 ноября
26.1106.51428, один пользователь, только смена аккаунта
macOS
26.715.21425, 17 июля 2026 года
26.1103.60933 (build 25894), 10 ноября
26.1106.51428, двое пользователей, только смена аккаунта
Linux
26.1103.32239, 7 ноября 2026 года, один случай
—
Нет
Между этими точками жалобы шли почти на каждую сборку, а причины пересекаются во времени. Проекты пропадали из списка после обновлений с июля, порча файла состояния нулевыми байтами впервые описана 21 сентября в #46987, и только смена аккаунта сосредоточена в ноябре, на сборках 26.1103.x с 6 ноября. Поэтому по номеру сборки причину не определить, её показывают признаки из таблицы случаев. Все номера взяты из сообщений пользователей. Версия в списке не значит, что затронута каждая установка, а отсутствие версии — что она безопасна.
Что ответила OpenAI и что исправлено к 12 ноября 2026 года
Исправление подтверждено только для смены аккаунта, и то со слов пользователей. 9 ноября 2026 года разработчик OpenAI ответил в #59895: «Мы знаем об этих проблемах и работаем над исправлением, которое должно выйти во вторничном релизе». Номера версии он не назвал. Вторник пришёлся на 10 ноября, но в тот день пользователи на 26.1103.60933 ещё видели пустой список. Сообщения о том, что всё вернулось, пришли 11 ноября со сборкой 26.1106.51428.
Поддержка OpenAI на форуме 7 ноября написала, что похожая проблема с исчезновением проектов и групп чатов в приложении для Windows «выявлена и с тех пор смягчена» (тема о проектах, пропавших из боковой панели после обновления Windows). 9 ноября она повторила это и попросила установить последнее обновление, затем полностью выйти и снова открыть приложение. Ни версии, ни шагов восстановления в этих ответах нет, а на вопрос о встроенной функции починки 7 сентября поддержка ответила, что сроков нет.
Официальной записи об исправлении тоже нет. По состоянию на 12 ноября 2026 года последняя запись о приложении в журнале изменений Codex датирована 8 октября (26.1007), заметок о выпуске 26.1106.51428 нет, а в релизах GitHub — только версии CLI. О том, что 26.1106.51428 исправила испорченный файл состояния или сбой миграции, никто не сообщал; новые жалобы на эти случаи появились 10 ноября в issue #60541 и #60672.
Пропали не проекты, а часть чатов в проекте
Если проекты в панели есть, но в них нет старых чатов или проект открывается пустым, это, скорее всего, другая проблема, описанная в issue #21128 об ограничении на 50 последних чатов. По разбору пользователей с мая по сентябрь 2026 года, приложение загружало только 50 последних чатов, в каждом проекте показывало по 5, а поиск работал только по загруженным. Данные при этом не удалялись. Осталось ли так в текущих сборках, в issue не обсуждалось с конца сентября. Архивированные чаты ищите в настройках, в разделе «Архивированные чаты»: после разархивирования чат возвращается на прежнее место. Один пользователь вернул старые чаты в панель, открыв их через codex resume --all и закрепив.
В ответе от 9 ноября поддержка OpenAI первым делом спрашивает, видны ли чаты в «Недавних», если в своих проектах их нет. Чтобы обращение можно было разобрать, соберите:
версию приложения, а на Windows — оба номера: пакета из Microsoft Store и из окна «О программе»;
что было перед исчезновением и когда: обновление, смена аккаунта или пространства, аварийное выключение;
строки лога с projectCount, Failed to load global state и Dropping invalid global state for key, если они есть;
три числа из проверки: проекты в базе, записи в local-projects, файлы сессий;
видны ли чаты в «Недавних» и находятся ли через поиск;
идентификатор сеанса, который приложение выдаёт после отзыва: введите / в поле сообщения и выберите отправку отзыва.
Отзыв из приложения, комментарий в подходящем issue (#59895 для смены аккаунта, #42739 или #58397 для остальных случаев) и обращение в поддержку можно отправить параллельно. Перед публикацией логов в GitHub просмотрите их: документация OpenAI предупреждает, что в них могут оказаться конфиденциальные данные, а пути к папкам проектов в выводе project_roots раскрывают структуру вашего диска.
Источники17
Внешние страницы, на которые ссылается это руководство, в порядке упоминания. Последнее обновление: 12 нояб. 2026 г..
«Ошибка при отправке сообщения» в Codex — общий заголовок, причину называет вторая строка. Timeout в новом чате: чат не создан за 30 с, часто из-за MCP-сервера.
Смотрите хвост после второго «account/read failed:»: при failed и timed out по отчётам помогал перезапуск фонового сервера Codex, при 401 — повторный вход.
«Codex could not start» — таймаут панели в 30 секунд. На сборке 26.1021.22027 помогает откат на 26.1007.21434, в WSL на VS Code 1.141.1 — переход на 1.141.2.
Десктопный Codex с 26.1013 в режиме Work требует вход через ChatGPT, API-ключа мало. Переключитесь на режим Codex или войдите в ChatGPT и оставьте посредника.