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

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

- URL: https://blog.laozhang.ai/ru/posts/codex-401-incorrect-api-key
- Published: 2026-10-01
- Updated: 2026-10-01
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Category: Инструменты разработки ИИ
- Tags: OpenAI Codex, Codex CLI, 401 Unauthorized, Incorrect API key, 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***…***fvMA` | `Logged in using ChatGPT` | Сервис OpenAI, как во время сбоя 25 сентября 2026 года | Открыть [status.openai.com](https://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, ключу в сообщении и способу входа видно, кто вернул ответ и что делать](https://blog.laozhang.ai/posts/ru/codex-401-incorrect-api-key/img/codex-401-who-returned.webp)

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

При входе через ChatGPT это сообщение означает, что отклонены учётные данные, которые участвуют в запросе помимо вас, а не ключ из вашего аккаунта. По [справочнику ошибок OpenAI API](https://developers.openai.com/api/docs/guides/error-codes#api-errors) формулировка `401 - Incorrect API key provided` относится к входу по API-ключу: «The requesting API key is not correct». Когда тот же текст получает человек, у которого ключа нет вообще, вывод «у меня испортился ключ» неверен.

Так выглядела ошибка в отчётах на GitHub ([#48237](https://github.com/openai/codex/issues/48237), [#48241](https://github.com/openai/codex/issues/48241)):

```text
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 об инциденте](https://status.openai.com/incidents/01M3DCNWMW57HYK8FJ5FBFPA39/write-up), примерно с 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](https://blog.laozhang.ai/posts/ru/codex-401-incorrect-api-key/img/codex-outage-timeline-msk.webp)

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

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

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

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

- **Откат CLI.** В issue [#48302](https://github.com/openai/codex/issues/48302) автор сообщил, что Codex заработал после отката на 0.148.0. Сообщение опубликовано в 23:56 UTC, через две минуты после закрытия события на странице статуса. При этом в #48241 другой пользователь получал ту же ошибку и на 0.157.0, и на 0.148.0.
- **Перезагрузка.** В [#48570](https://github.com/openai/codex/issues/48570) ошибка пропала после повторной перезагрузки без нового входа. Указанный автором период ошибок — с 23:00 до 01:00 UTC — приходится на сбой и на часы, когда восстановление расходилось по кластерам.
- **Удаление `auth.json` и `state_5.sqlite`.** Такой рецепт встречается в сторонних инструкциях для Windows, которые сами предупреждают, что вместе с файлами может пропасть локальное состояние задач и сессий. В [документации Codex по аутентификации](https://learn.chatgpt.com/docs/auth) файл `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](https://github.com/openai/codex/issues/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](https://github.com/openai/codex/issues/41975) она сопровождалась текстом «Your access token could not be refreshed because your refresh token was revoked. Please log out and sign in again». Codex сам называет лекарство: выйти и войти заново.

**Сторонний сетевой фильтр на Windows.** В [#48316](https://github.com/openai/codex/issues/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: вход, прокси, регион и кэш»](https://blog.laozhang.ai/ru/posts/codex-token-exchange-failed-403). Когда 401 чередуется с 429 или обрывом потока, поможет статья [«Ошибки Codex 401, 429 и Stream Disconnected: найдите слой отказа»](https://blog.laozhang.ai/ru/posts/codex-exceeded-retry-limit-429).

## Вход по 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»](https://blog.laozhang.ai/ru/posts/codex-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: какой маршрут выбрать»](https://blog.laozhang.ai/ru/posts/codex-api-key-vs-subscription).

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

Обещание есть, но не на официальной странице. Руководитель 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](https://community.openai.com/t/codex-is-down-confirmed-by-openai/1400811). Ни страница статуса, ни отчёт об инциденте о сбросе лимитов не упоминают, а сроки и порядок сброса для отдельных аккаунтов нигде не описаны. Сверяйте лимит в своём аккаунте, а не считайте сброс состоявшимся.

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

Остановиться стоит после одного чистого повторного входа: если страница статуса не показывает событий, `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` и полные ключи в обращение не вставляйте: маски из текста ошибки достаточно.
