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

Сообщение 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***…***fvMA | Logged 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 |

Что означает «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 минут.

Первое сообщение на странице статуса появилось примерно через 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 для этого кода: убедиться, что используется правильный ключ, или выпустить новый.
Что проверить по порядку:
- Какой ключ на самом деле уходит в запрос. Сравните маску из ошибки со значением
OPENAI_API_KEYиCODEX_API_KEYв той оболочке, из которой запущен Codex: в ошибке может оказаться старый ключ из другого профиля или файла окружения. - Не отозван ли ключ и относится ли он к нужному проекту на странице ключей OpenAI Platform.
- Не переопределён ли адрес через
OPENAI_BASE_URL: ключ OpenAI, отправленный на чужой адрес, тоже вернёт 401. - Точный текст. Рядом с
Incorrect API key providedв справочнике стоят другие 401:Invalid Authentication, ключ без организации и запрос с неразрешённого IP-адреса. У них другие причины.
После замены ключа войдите заново командой из документации:
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 и полные ключи в обращение не вставляйте: маски из текста ошибки достаточно.





