Перейти к основному содержанию

Codex: ошибка 401 Incorrect API key — сбой, вход или ключ

Если вы вошли в Codex через ChatGPT, 401 Incorrect API key provided не говорит о вашем ключе. Источник видно по URL и тексту ключа в самой ошибке.

LaoZhang AI TeamОпубликовано8 мин чтения
Содержание
Обложка: Codex 401 Incorrect API key — три источника ошибки: сбой OpenAI, сам Codex с ключом dummy и ваш API-ключ

Сообщение unexpected status 401 Unauthorized: Incorrect API key provided в Codex приходит от трёх разных слоёв, и чинить нужно только тот, который ответил. Если вы вошли через ChatGPT и API-ключ никогда не задавали, ключ из текста ошибки не ваш: создавать новый ключ, откатывать версию и удалять ~/.codex бессмысленно. Если вы работаете по API-ключу или через собственного провайдера, сообщение нужно понимать буквально.

Определить слой можно по двум фрагментам самой ошибки — адресу после url: и ключу после provided: — и по выводу codex login status.

Что в ошибкеcodex login statusКто вернул 401Что делать
url: https://chatgpt.com/backend-api/codex/responses, ключ вида sk-svcac***…***fvMALogged in using ChatGPTСервис OpenAI, как во время сбоя 25 сентября 2026 годаОткрыть status.openai.com и ждать; локально ничего не менять
url: wss://api.openai.com/v1/responses, ключ dummyВход через ChatGPTСам Codex: не обновился токен, подставлена заглушкаcodex logout, затем войти заново
Адрес api.openai.com, ключ начинается так же, как вашВход по API-ключуOpenAI Platform отклонила ваш ключПроверить ключ и переменные окружения, при необходимости выпустить новый
Адрес вашего шлюза или стороннего сервисаЛюбойПровайдер из config.tomlПроверить env_key, значение переменной и base URL

Четыре варианта ошибки Codex 401: по адресу url, ключу в сообщении и способу входа видно, кто вернул ответ и что делать

Что означает «Incorrect API key provided» при входе через ChatGPT

При входе через ChatGPT это сообщение означает, что отклонены учётные данные, которые участвуют в запросе помимо вас, а не ключ из вашего аккаунта. По справочнику ошибок OpenAI API формулировка 401 - Incorrect API key provided относится к входу по API-ключу: «The requesting API key is not correct». Когда тот же текст получает человек, у которого ключа нет вообще, вывод «у меня испортился ключ» неверен.

Так выглядела ошибка в отчётах на GitHub (#48237, #48241):

unexpected status 401 Unauthorized: Incorrect API key provided: sk-svcac***…***fvMA.
You can find your API key at https://platform.openai.com/account/api-keys.,
url: https://chatgpt.com/backend-api/codex/responses, cf-ray: …, request id: …

Авторы этих отчётов входили через ChatGPT и API-ключ не настраивали. Один из них привёл вывод codex login status со строкой Logged in using ChatGPT и отсутствие переменных OPENAI_API_KEY, CODEX_API_KEY и OPENAI_BASE_URL. У разных людей маска ключа начиналась и заканчивалась одинаково: sk-svcac и fvMA. Отсюда вывод: один и тот же ключ у многих пользователей не может принадлежать никому из них. Что означает префикс sk-svcac, OpenAI не объясняла.

Сбой Codex 25 сентября 2026 года: 401 и 502 при входе через ChatGPT

Массовая волна этой ошибки — сбой на стороне OpenAI, который длился чуть больше часа. По отчёту OpenAI об инциденте, примерно с 3:33 p.m. до 4:47 p.m. PDT 25 сентября пользователи Codex, вошедшие через ChatGPT, получали ошибки аутентификации 401 и ошибки шлюза 502. По Москве это 26 сентября, с 01:33 до 02:47. Доступ к Codex по собственному API-ключу, как сказано в отчёте, затронут не был.

Причина по тому же отчёту: система, которая ищет утёкшие учётные данные, ошибочно пометила как возможно скомпрометированные внутренние учётные данные для связи между сервисами Codex. Затем их отозвали вручную, в обход существующих защит. OpenAI подтвердила, что трафик, вызвавший срабатывание, был легитимным и утечки не было. Исходные учётные данные снова включили в 4:39 p.m. PDT. Отчёт не говорит, что ключ из текста ошибки и есть эти внутренние учётные данные, но наблюдение об одинаковой маске с таким описанием согласуется. О том, что затронуты учётные данные пользователей, в отчёте нет ни слова.

У сбоя два отсчёта, и они не совпадают:

  • отчёт об инциденте описывает влияние на пользователей: с 01:33 до 02:47 по Москве, около 74 минут;
  • на странице статуса событие «Issues with Codex» с пометкой Full outage открыто в 22:58 UTC и закрыто в 23:54 UTC (01:58–02:54 по Москве), то есть 56 минут.

Шкала сбоя Codex по московскому времени: 01:33–02:47 по отчёту OpenAI, 01:58–02:54 на странице статуса и три события в 02:19, 02:39 и 02:51

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

Восстановление шло не одновременно для всех. В 23:51 UTC сотрудник OpenAI написал в issue #48237: «Issue has been mitigated. Recovery is rolling out through clusters». В отчёте стоит формулировка «largely recovered», а страница статуса отдельно оговаривает, что доступность у конкретного пользователя может отличаться от сводного показателя.

Что не помогало при сбое: откат версии, перезагрузка, auth.json

Ни одно локальное действие не могло вернуть отозванные на сервере учётные данные, поэтому «исправления», о которых писали пользователи в ту ночь, совпали с восстановлением сервиса, а не вызвали его.

  • Откат CLI. В issue #48302 автор сообщил, что Codex заработал после отката на 0.148.0. Сообщение опубликовано в 23:56 UTC, через две минуты после закрытия события на странице статуса. При этом в #48241 другой пользователь получал ту же ошибку и на 0.157.0, и на 0.148.0.
  • Перезагрузка. В #48570 ошибка пропала после повторной перезагрузки без нового входа. Указанный автором период ошибок — с 23:00 до 01:00 UTC — приходится на сбой и на часы, когда восстановление расходилось по кластерам.
  • Удаление auth.json и state_5.sqlite. Такой рецепт встречается в сторонних инструкциях для Windows, которые сами предупреждают, что вместе с файлами может пропасть локальное состояние задач и сессий. В документации Codex по аутентификации файл state_5.sqlite не упоминается, а его удаление не числится шагом восстановления.
  • Новые отчёты и /feedback. Сотрудник OpenAI в #48237 прямо попросил их не отправлять: «No need to post additional reports or /feedback».

Вреда от отката версии нет, но и пользы тоже. Удаление файлов из ~/.codex — другое дело: вы теряете вход и, возможно, локальное состояние, а запросы продолжают падать, пока сервис не починят.

401 остался после сбоя: dummy, отозванный токен, сетевой фильтр

Если страница статуса зелёная, а 401 остаётся, перечитайте текст ошибки: за пределами сбоя у неё другие ключ и адрес.

Ключ dummy и адрес wss://api.openai.com/v1/responses. В issue #37192 от 6 августа 2026 года описан такой сценарий для CLI 0.145.0: после смены сети токен входа через ChatGPT не обновился, и Codex подставил зашитый в код ключ dummy. Сообщение выглядит как Incorrect API key provided: dummy. Это разбор пользователя, подтверждения от OpenAI и версии с исправлением в issue нет. Действие здесь простое: codex logout и новый вход через ChatGPT.

Тело {"detail":"Unauthorized"} без слов про API-ключ. Это другая ошибка 401 на том же адресе chatgpt.com/backend-api/codex/responses. В #41975 она сопровождалась текстом «Your access token could not be refreshed because your refresh token was revoked. Please log out and sign in again». Codex сам называет лекарство: выйти и войти заново.

Сторонний сетевой фильтр на Windows. В #48316 пользователь Windows 11 сообщил, что после обновления Codex Desktop файл codex.exe оказался в новом каталоге и Malwarebytes начал блокировать его исходящие HTTPS-соединения как у незнакомой программы. В логе были строки Workspace routing is unavailable и Desktop network policy does not allow this destination, а в интерфейсе — тот же 401. Это единственное сообщение, OpenAI его не подтверждала, и случилось оно в ночь сбоя. Проверить правила защитного ПО стоит, если ошибка появилась сразу после обновления приложения.

Перед повторным входом учтите две вещи из документации Codex. CLI и расширение для IDE используют общий кэш входа в ~/.codex/auth.json или в системном хранилище учётных данных, поэтому codex logout в терминале разлогинит и расширение. А сам auth.json содержит токен доступа: его нельзя коммитить, вставлять в тикеты и чаты.

Если сам вход завершается отказом, это уже другая задача: см. разбор «Ошибка обмена токена Codex 403: вход, прокси, регион и кэш». Когда 401 чередуется с 429 или обрывом потока, поможет статья «Ошибки Codex 401, 429 и Stream Disconnected: найдите слой отказа».

Вход по API-ключу: когда сообщение об ошибке нужно читать буквально

Если codex login status показывает вход по API-ключу, а маска в ошибке совпадает с началом и концом вашего ключа, платформа отклонила именно его. Рекомендация OpenAI для этого кода: убедиться, что используется правильный ключ, или выпустить новый.

Что проверить по порядку:

  1. Какой ключ на самом деле уходит в запрос. Сравните маску из ошибки со значением OPENAI_API_KEY и CODEX_API_KEY в той оболочке, из которой запущен Codex: в ошибке может оказаться старый ключ из другого профиля или файла окружения.
  2. Не отозван ли ключ и относится ли он к нужному проекту на странице ключей OpenAI Platform.
  3. Не переопределён ли адрес через OPENAI_BASE_URL: ключ OpenAI, отправленный на чужой адрес, тоже вернёт 401.
  4. Точный текст. Рядом с Incorrect API key provided в справочнике стоят другие 401: Invalid Authentication, ключ без организации и запрос с неразрешённого IP-адреса. У них другие причины.

После замены ключа войдите заново командой из документации:

bash
printenv OPENAI_API_KEY | codex login --with-api-key

В управляемых средах администратор может задать forced_login_method = "chatgpt" или "api". Если текущий способ входа не совпадает с заданным, Codex выходит из аккаунта и завершает работу.

Собственный провайдер в config.toml: 401 из-за его ключа и base URL

Когда в config.toml описан собственный провайдер — шлюз, прокси или сторонний сервис, — адрес в ошибке будет его, и 401 зависит от его ключа, а не от OpenAI и не от сентябрьского сбоя. Документация Codex описывает три режима аутентификации провайдера:

Настройка провайдераЧто отправляет Codex
requires_openai_auth = trueВход OpenAI; env_key при этом игнорируется
env_key с именем переменной окруженияКлюч провайдера из этой переменной
Ни одной из двух настроекЗапрос без аутентификации

Типичные причины 401 следуют из этой таблицы: переменная из env_key пуста в той оболочке, где запущен Codex; одновременно задан requires_openai_auth = true, и ключ провайдера не отправляется вовсе; ключ правильный, а base URL ведёт на другой сервис. Полная настройка разобрана в статье «Custom provider в Codex: API-ключ, Base URL и config.toml».

Можно ли во время сбоя временно перейти на API-ключ

Да, и OpenAI сама это предлагала: в 23:19 UTC на странице статуса появилась строка «Login via API key will unblock access at this time». Вход по ключу шёл другим путём и работал.

У такого перехода есть цена и ограничения, описанные в документации Codex:

  • запросы оплачиваются по стандартным ценам OpenAI Platform и не расходуют лимиты подписки ChatGPT;
  • функции, которые зависят от рабочего пространства ChatGPT или облачных сервисов, ограничены или недоступны;
  • Codex cloud работает только при входе через ChatGPT.

Вернуться просто: codex logout и вход через ChatGPT. Помните про общий кэш: смена способа входа в CLI действует и на расширение для IDE. Чем два способа входа отличаются по составу и по тому, кто выставляет счёт, разобрано в статье «Codex API-ключ или подписка ChatGPT: какой маршрут выбрать».

Вернут ли лимиты, потраченные во время сбоя

Обещание есть, но не на официальной странице. Руководитель Codex в OpenAI Тибо (@thsottiaux) написал в X: «we're back in action and we'll reset usage limits for all paid users across codex and ChatGPT work»; запись приведена в теме на OpenAI Developer Community. Ни страница статуса, ни отчёт об инциденте о сбросе лимитов не упоминают, а сроки и порядок сброса для отдельных аккаунтов нигде не описаны. Сверяйте лимит в своём аккаунте, а не считайте сброс состоявшимся.

Когда прекратить локальную диагностику и что передать поддержке

Остановиться стоит после одного чистого повторного входа: если страница статуса не показывает событий, codex logout и новый вход выполнены, а ошибка с адресом chatgpt.com/backend-api возвращается, локальных причин в вашем распоряжении больше нет. Дальнейшее удаление файлов и переустановки только сотрут данные, полезные для разбора.

Для обращения по API OpenAI просит указать модель, текст и код ошибки, данные и заголовки запроса, время запроса с часовым поясом. В случае Codex соберите заранее:

  • полный текст ошибки вместе с url, cf-ray и request id: по ним запрос находят на стороне сервера;
  • вывод codex --version и codex login status;
  • операционную систему и поверхность: CLI, десктопное приложение или расширение VS Code;
  • время первой и последней ошибки с часовым поясом;
  • файл codex-login.log из каталога логов, если проблема возникает при входе.

Содержимое auth.json и полные ключи в обращение не вставляйте: маски из текста ошибки достаточно.