Сначала смотрим на продолжение ошибки

Прежде чем удалять историю, разделите симптомы

История открывается / не отправляется только сообщение
thread not found
→ Переоткрыть, затем перезапустить приложение
Возможность прочитать историю не означает возможность отправить сообщение
Архивация тоже не работает / os error 2
Ошибка ссылки на место хранения (историю часто можно прочитать)
→ Проверить сохранённую историю и сообщить о проблеме
Не переименовывайте файлы и не меняйте базу данных в первую очередь
Ошибка примерно через 30 секунд после отправки
Timeout / App server request expired while queued
→ Различить ожидание в очереди и зависший ответ
Одно и то же сообщение об ошибке, но другой путь
Эта схема помогает выбрать, где проверять, по формулировке, которая идёт после ошибки.

1. Что означает «thread not found»

При отправке продолжения в существующую задачу в Codex от OpenAI может появиться ошибка такого вида. Идентификатор в конце обозначает целевой разговор и в тексте скрыт.

Ошибка при отправке сообщения
thread not found: <ID разговора>

В приложении на английском языке первая строка выглядит как Error submitting message (#30710).

Error submitting message
thread not found: <conversation ID>

Эта статья относится к существующим локальным задачам в приложении для рабочего стола. Она основана на логах примера, который наблюдался в нашей среде (Windows), на публичном исходном коде и на сообщениях пользователей об ошибках, и отражает ситуацию на 21 сентября 2026 года.

«Можно прочитать» и «можно отправить» — это разные проверки

Сохранённая история

Прочитать прошлые обмены

Загрузка сохранённых данных

Разговор, загруженный для выполнения

Принимает новые инструкции

Возобновление разговора → следующая инструкция

Даже если на экране написано «возобновлено»…

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

Концептуальная схема на основе публичной спецификации и исходного кода. Проверяйте отдельно, совпадают ли экран, сохранённая история и состояние выполнения.

Показ истории и приём новых инструкций — разные механизмы. Для задачи, которой давно не пользовались, история может загружаться, тогда как разговор не загружен на стороне, принимающей инструкции. Если отправить как есть, появится эта ошибка.

Подробности механизма (внутренние названия обмена приложения)

Согласно официальной спецификации App Server, thread/read читает сохранённую историю и не загружает разговор в память выполнения. Его роль отличается от thread/resume, который продолжает разговор. Это внутренние названия обмена приложения, а не команды, которые вводятся в поле чата.

В публичном исходном коде процесса отправки, соответствующем версии CLI 0.155.0-alpha.9 (она указана в сохранённых метаданных в нашей среде), точка входа turn/start получает разговор и при неудаче возвращает thread not found. Поиск идёт по списку разговоров в памяти, поэтому эта ошибка не означает потерю сохранённого файла.

notLoaded — обычное состояние, при котором сохранённый разговор сейчас не загружен для выполнения. По официальной спецификации App Server разговор, у которого не осталось подписчиков, выгружается и переходит в notLoaded, если нет ни подписчиков, ни активности в течение 30 минут. Проблема в том, что из этого состояния не происходит нужного шага возобновления и следующая инструкция не принимается. В нашем примере сбой произошёл более чем через час после последней успешной отправки.

2. Пример: отправка восстановилась с сохранённой историей

Это пример из нашей среды. Ошибка появилась, когда мы отправили инструкцию продолжить задачу в приложении для Windows версии 26.915.31029. Ниже логи приложения от 21 сентября 2026 года приведены к UTC, идентификаторы разговоров и сведения о задаче опущены.

От повторной попытки на экране до реальной перезагрузки

08:26:51 / 08:26:59

Отправка не удалась (внутренний ответ — thread not found)

Экран уже считал разговор возобновлённым

09:08:36

Та же ошибка отправки после повторного открытия

Простое переключение экрана не помогло

10:00:28 → 10:08:49

Подтверждено состояние «не загружен» → разговор успешно перезагружен

Не загружен → сочли, что нужно возобновление → возобновление прошло успешно

10:09:07 / 10:11:56

Следующая инструкция принята, отправка прошла успешно

При последующей проверке истории оба хода были завершены без ошибок

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

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

Что подтвердил этот случай

  • История сохранилась
  • После перезагрузки разговора отправка прошла успешно
  • При расследовании история и настройки не менялись

Чего этот случай не показывает

  • Точного триггера, из-за которого разговор внутренне выгрузился
  • Причины, общей для всех пользователей

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

3. Порядок действий, если не работает только отправка

Сначала сохраните введённый текст, чтобы не потерять его. Прежде чем снова нажимать «Отправить», проверьте, не добавилась ли та же инструкция в разговор и не начата ли уже обработка. Особенно для инструкций, связанных с публикацией, удалением или покупкой, важно не отправлять повторно запросы, на ответ на которые долго нет реакции.

01

Проверьте разговор и последнюю работу

Проверьте, можно ли прочитать прошлые сообщения и выглядит ли последняя инструкция завершённой, выполняющейся или с ошибкой. Если задачи нет в списке, откройте также «Архивные чаты» в настройках (как указано в официальном руководстве по устранению неполадок). Если вы редактировали файлы, сохраните их и запишите, где вы работали. Проблему отображения разговора и пропажу рабочих файлов рассматривайте отдельно.

02

Дождитесь загрузки и откройте ту же задачу заново

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

03

Проверьте другую работу и полностью перезапустите приложение

Если выполняется другая задача, дождитесь её завершения или сохраните нужное и остановите её. Затем закройте приложение, запустите его снова и откройте ту же задачу. Переключение вида задач и перезапуск всего приложения — разные операции.

04

Убедитесь, что короткий ответ завершается

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

Например, проверочное сообщение можно сузить так. Оно отправляется модели как обычная инструкция, поэтому может учитываться в вашем использовании как обычно.

Это проверка соединения. Не возобновляйте предыдущую работу.
Не читая и не записывая файлы и не вызывая инструменты,
ответьте только: «Ответ получен».

Сообщение в GitHub-репозитории OpenAI #30710 содержит случай, когда ошибка отправки сразу после открытия разговора в Windows была устранена полным перезапуском приложения. Официальная инструкция по устранению неполадок «дождаться завершения выполняющейся задачи перед перезапуском» относится к случаю, когда зависает встроенный терминал; она не предназначена для этой ошибки отправки.

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

4. Одинаковое сообщение может иметь разные причины и способы решения

Не судите только по строке «Ошибка при отправке сообщения», смотрите на формулировку, которая идёт после неё, и на операцию, которая не сработала. В таблице ниже примеры из публичных сообщений и из нашей среды разделены по симптомам.

Видимый симптомЧто проверитьЧего не стоит предполагать
История открывается, но отправка не работаетРаботает ли отправка после перезагрузкиВозможность прочитать историю не означает, что сообщение можно отправить
Архивация тоже не работает / os error 2Состояние сохранённых файлов и того, на что они указывают (историю часто можно прочитать)Даже если отправка вернулась после перезапуска, архивация может продолжать не работать
Timeout / App server request expired while queuedЖдала ли отправка около 30 секунд, зависла ли она или была в очередиНе смешивайте с thread not found, который возвращается сразу
Не работают и продолжение, и остановкаДействительно ли задача выполняется или отображение устарелоНе полагайтесь только на индикатор выполнения на экране

Для случая, когда история сохраняется, полезен комментарий пользователя macOS в #30710. Экран считал разговор возобновлённым, но отправка продолжала срываться; позже перезагрузка в новом окне прошла успешно. Это сообщение о рассогласовании состояния, которое нельзя объяснить «гонкой только в момент открытия», и его развитие очень похоже на случай из этой статьи.

С другой стороны, в сообщении для Windows #39179 история читалась, а отправка и архивация не работали, и в среде автора это продолжалось и после перезапуска. В более позднем комментарии сообщается, что после полного перезапуска приложения продолжить работу удалось, но ошибка архивации надёжно не исчезла. #39575 содержит диагностику, связанную с временными метками в именах сохранённых файлов и процессом поиска ссылок. Все эти материалы — исследования пользователей, поэтому не делайте вывод о повреждении собственных данных только из-за префикса пути или разницы часовых поясов.

Тип с ожиданием показан в сообщении о тайм-ауте отправки #27395, где приведены логи: turn/start был прерван через 30 секунд (timeoutMs=30000) и завершился ошибкой Timeout. В дополнении к #23644 запрос, от которого зависит отправка, ожидал в очереди около 30 секунд (queueWaitMs=30001) и завершился ошибкой App server request expired while queued. Тип, где не работает и остановка, виден в сообщении о несогласованности истории и состояния выполнения #42604.

5. Если не помогает: проверки и передача задачи

Если после перезапуска ничего не изменилось, проверьте, можно ли прочитать сохранённую историю. Если доступна функция, которая позволяет другой рабочей задаче Codex читать нужную задачу, начните с проверки только для чтения. Важно также не перепутать целевой идентификатор с задачей с похожим названием.

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

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

Это пример для сред, где доступны функции управления задачами. Если такой функции нет, не угадывайте внутренние команды с похожими именами, а переходите к отчёту в разделе 6.

Выберите следующий шаг по результатам проверки

История читается, предыдущая работа завершена
Рассмотрите дополнительное проверочное сообщение или форк для переноса истории. Исходную задачу сохраните.
История читается, но неясно, выполняется ли работа
Сначала проверьте состояние выполнения и изменения файлов. Не запускайте одну и ту же работу дважды в другой задаче.
Появляется ошибка хранилища (например, os error 2)
Сохраните резервную копию и сообщите о проблеме вместе с логами. Не удаляйте исходные файлы, чтобы исправить загрузку.

В дополнении к #39179 описан случай: короткое проверочное сообщение отправили из другой рабочей задачи, и после завершения ответа восстановился и обычный разговор. Однако в другом дополнении похожая отправка не работала, а новая инструкция была принята после форка завершённой истории. В ответ на этот контрпример первый автор сообщения добавил, что это не общее решение.

Форк — это операция переноса завершённой истории в отдельную задачу; исходная задача от этого не исправляется. Не считайте, что незавершённая работа просто продолжится. После передачи проверьте рабочий каталог, изменённые файлы и последний завершённый этап.

Данные истории и рабочие файлы тоже разделены. Даже если разговор не открывается, результаты правок в проекте могут сохраниться. И наоборот: если разговор читается, это не значит, что файлы актуальны. Если проект использует Git, просмотрите список изменений и выясните, что уже выполнено, прежде чем продолжать.

6. Какие сведения сохранить при запросе расследования

При сообщении указывайте не только «не отправляется», но и что сработало, а что нет. Версия приложения, ОС, время и часовой пояс, идентификатор целевого разговора и операция, выполненная непосредственно перед ошибкой, помогают отследить проблему, не смешивая её с другими сбоями. Выкладывать весь текст разговора сразу не нужно.

Шаблон заметки для отчёта

Среда
Версия приложения / ОС / где выполняется, например локально или удалённо
Возникновение
Время и часовой пояс / полный текст ошибки / операция, выполненная непосредственно перед ней
Что работает и что нет
Результаты показа истории / отправки / остановки / архивации
Попытки
Что изменилось до и после повторного открытия или перезапуска

Если можно смотреть логи, полезно изучить строки до и после неудавшегося запроса. method=turn/start означает начало инструкции, thread/resume — возобновление разговора, errorCode — подсказку о внутреннем ответе. Сохраняйте и успешные строки и различайте, встречается ли одна и та же ошибка просто в нескольких строках лога или действительно сработала несколько раз.

Места логов приложения: в официальном руководстве по устранению неполадок для macOS указан путь ~/Library/Logs/com.openai.codex/YYYY/MM/DD. В Windows в нашей среде логи находились в двух местах:

  • ПК, где появилась ошибка: %LOCALAPPDATA%\Codex\Logs
  • версия из Microsoft Store на другом ПК (логи за март 2026 года): %LOCALAPPDATA%\Packages\OpenAI.Codex_<ID>\LocalCache\Local\Codex\Logs (на этом ПК самой папки %LOCALAPPDATA%\Codex не было)

Согласно объяснению Microsoft, файлы, которые упакованное приложение создаёт в AppData, записываются в место, закрытое для приложения, и приложению могут казаться находящимися в обычном месте. Если в одном месте их нет, поищите и в другом. Официально данные сессий хранятся в $CODEX_HOME/sessions (по умолчанию ~/.codex/sessions). Если настройки или место запуска отличаются, нужного объекта может просто не быть в открытой вами папке, поэтому не считайте его удалённым только потому, что «поиск его не находит».

Если вы переносили данные Codex (CODEX_HOME) или само приложение на другой диск, то записи о том, что где находится, собраны в статье ChatGPT и Codex: перенос на другой диск.

В официальном руководстве по устранению неполадок описано, как отправить отзыв: нужно ввести / в поле ввода. Логи и скриншоты могут содержать текст разговора, адреса электронной почты, названия других проектов и локальные пути. В публичной задаче размещайте только нужные части в обезличенном виде, а передавая полные идентификаторы и подобные данные, проверяйте адресата и круг тех, кто увидит их.

7. Проверьте восстановление коротким ответом

Первая реакция на эту ошибку — не удаление истории, а отдельная проверка: можно ли её прочитать, можно ли её возобновить и завершается ли новая инструкция. В этом случае отправка восстановилась после перезагрузки разговора. Если появляется ошибка хранилища, это другой путь, поэтому перейдите к проверкам в разделе 5.

Когда короткий ответ завершится, проверьте, насколько продвинулась исходная инструкция, и продолжайте с нужного этапа. Если проблема не решена, приоритет — исследование только для чтения и сохранение логов. Важно не считать восстановление завершённым только потому, что сообщение об ошибке исчезло или удалось создать форк.

Связанные статьи:

FAQ

В. Если появилось «thread not found», значит, разговор удалён?
О. Не обязательно. Сохранённую историю можно читать, тогда как разговор, нужный как цель отправки для выполнения, может быть не загружен. С другой стороны, проблема может быть в ссылке на хранилище или в самих файлах, поэтому проверьте, действительно ли их можно прочитать.

В. notLoaded — это ошибка?
О. Само это состояние нормальное. Оно означает, что сохранённый разговор сейчас не загружен для выполнения. Проблемой это становится, только если при продолжении разговор не возобновляется и даже короткий ответ не завершается.

В. Перезапуск всегда помогает?
О. Не всегда. Есть сообщения, где полный перезапуск устранил проблему (#30710), и сообщения, где отправка и архивация продолжали срываться и после перезапуска (#39179). В нашем примере отправка восстановилась после перезагрузки разговора.

В. Поможет ли обновление до последней версии?
О. По состоянию на 21 сентября 2026 года мы не нашли исправленной версии, в которой прямо указано, что эта проблема устранена полностью. Обновляя, записывайте версии приложения до и после и результаты. Отдельно установленный CLI и Codex, встроенный в приложение, необязательно имеют одну и ту же версию.