Антон Ларичев

Codex не работает: частые ошибки и решения
Чаще всего Codex не работает по одной из четырёх причин: команда codex не находится в системе, Codex пытается войти в аккаунт OpenAI, который из России недоступен, неправильно настроен провайдер в ~/.codex/config.toml или песочница не даёт командам выйти в сеть. Ниже — ошибки по симптомам: что вы видите, почему это происходит и что исправить. В конце — как включить подробный лог, если ни один пункт не подошёл.
Если вы ещё не настраивали Codex, начните с инструкции Codex в России: как установить и настроить без VPN: большинство ошибок ниже — это отступления от неё.
Команда codex не найдена
Что видите: command not found: codex на macOS и Linux или «codex не распознано как имя командлета» в PowerShell.
Почему: Codex не установлен или папка с ним не попала в PATH.
Что делать. Проверьте установку:
codex --version
Если команды нет, установите Codex через npm:
npm install -g @openai/codex
Если после установки команда всё равно не находится, папка глобальных пакетов npm не в PATH. Узнайте её командой npm config get prefix, добавьте в PATH и откройте новый терминал. На Windows это самая частая проблема — пошаговый разбор в статье Как установить Codex на Windows в России.
У Codex есть и отдельный установщик, который скачивается с chatgpt.com. Если из России скачивание не проходит, ставьте через npm — это тот же Codex.
Ошибка региона или неподдерживаемой страны при входе
Что видите: при запуске открывается вход через ChatGPT, а дальше — ошибка о неподдерживаемой стране или регионе.
Почему: Codex по умолчанию входит через аккаунт OpenAI, а OpenAI не поддерживает Россию.
Что делать: не входить в OpenAI вовсе, а подключить Codex к своему провайдеру с ключом из переменной окружения. Тогда вход не нужен. Как это устроено — в статье Как войти в Codex из России.
Codex просит войти, хотя провайдер настроен
Что видите: вы прописали провайдера в config.toml, но Codex всё равно открывает экран входа или запросы идут в OpenAI.
Почему: Codex не применил вашего провайдера. Причин три.
model_providerне совпадает с именем секции. В строкеmodel_provider = "purpleschool"и в заголовке[model_providers.purpleschool]должно стоять одно и то же имя.- Провайдер назван зарезервированным именем. Имена
openai,ollamaиlmstudioзаняты встроенными провайдерами, переопределить их нельзя. Назовите своего иначе, напримерpurpleschool. - Строки
modelиmodel_providerстоят не в том месте файла. Это ловушка формата TOML: всё, что написано после заголовка[model_providers.purpleschool], относится к этой секции. Еслиmodel = "..."оказалась ниже заголовка, Codex её не увидит как общую настройку.
Правильный порядок — общие строки вверху файла, секции ниже:
model = "gpt-6-sol"
model_provider = "purpleschool"
[model_providers.purpleschool]
name = "PurpleSchool OpenAI Proxy"
base_url = "https://app.purpleschool.ru/api-v2/public/ai-proxy/openai/v1"
env_key = "PURPLESCHOOL_API_KEY"
wire_api = "responses"
supports_websockets = false
Если раньше вы входили через ChatGPT и хотите окончательно перейти на провайдера, удалите сохранённый вход командой codex logout.
Codex не находит ключ
Что видите: сообщение о том, что не задана переменная окружения с ключом.
Почему: Codex читает ключ из переменной, имя которой указано в env_key. Если в текущем терминале переменной нет, ключа тоже нет.
Что делать. Проверьте переменную в том же терминале, где запускаете Codex:
echo $PURPLESCHOOL_API_KEY
В PowerShell — echo $env:PURPLESCHOOL_API_KEY. Пустой вывод значит, что переменная задана в другом файле оболочки или терминал открыт раньше, чем вы её добавили. Откройте новый терминал или выполните source ~/.zshrc. Как работают переменные окружения и почему уже запущенные программы не видят новые значения — в статье про переменные окружения в Bash.
Если ключ не находит расширение Codex в VS Code или Cursor, а в терминале всё работает, редактор запущен без этой переменной. Полностью закройте его и откройте из терминала, где переменная задана.
Ошибка 401: ключ не принят
Что видите: ответ 401 Unauthorized.
Почему: провайдер не принял ключ. Обычно это одна из трёх вещей:
- ключ скопирован с ошибкой или с лишним пробелом;
- ключ отключён в личном кабинете;
- в
env_keyвписан сам ключ, а не имя переменной. Правильно —env_key = "PURPLESCHOOL_API_KEY", а значение ключа лежит в переменной окружения.
Ошибка 404 или модель не найдена
Что видите: 404 Not Found на каждый запрос или сообщение, что модель не существует.
Почему и что делать:
- В
base_urlнет/v1в конце. Адрес должен заканчиваться на.../ai-proxy/openai/v1. Без/v1прокси отвечает 404. - Неправильный
wire_api. Codex общается с провайдером по протоколу Responses API, поэтому нужноwire_api = "responses". С другим протоколом запросы уходят на путь, которого у провайдера нет. - Опечатка в имени модели. Сверьте значение
modelс инструкцией на странице AI для кода. Имена моделей OpenAI пишутся через дефис и точку:gpt-6-sol,gpt-5.6-terra.
Codex перестал отвечать, хотя всё работало
Что видите: конфиг не менялся, вчера всё работало, сегодня ответов нет или приходит ошибка о нехватке баланса.
Почему: конфиг сам не ломается — меняется что-то вокруг. Проверьте по порядку:
- Баланс. Когда токены месяца закончились, доступ к API приостанавливается. Посмотрите остаток в личном кабинете: можно дождаться обновления лимита, сменить тариф или докупить пакет.
- Обновление Codex. Начиная с версии 0.134.0 Codex больше не читает профили из секций
[profiles.имя]вconfig.tomlи не поддерживает строкуprofile = "имя". Если вы пользовались профилями, перенесите их настройки в отдельные файлы~/.codex/имя.config.toml, а старые секции удалите. - Ключ. Его могли отключить в кабинете или пересоздать.
Ответ обрывается или зависает
Что видите: длинный ответ останавливается на середине, Codex долго ничего не пишет, а потом сообщает об ошибке соединения.
Почему: соединение с провайдером оборвалось или ответ шёл дольше, чем Codex готов ждать.
Что делать. Сначала проверьте, не включён ли системный VPN или корпоративный прокси: с провайдером, доступным из России, они только добавляют точек отказа. Если обрывы повторяются, добавьте в секцию провайдера повторные попытки и увеличьте время ожидания:
[model_providers.purpleschool]
# ...остальные строки секции без изменений
request_max_retries = 4
stream_max_retries = 10
stream_idle_timeout_ms = 300000
request_max_retries — сколько раз повторять неудавшийся запрос, stream_max_retries — сколько раз переподключаться при обрыве потока ответа, stream_idle_timeout_ms — сколько миллисекунд ждать следующего фрагмента ответа, здесь пять минут.
Команды внутри Codex не работают
Что видите: агент пытается выполнить npm install, pip install или git push, а команда падает с сетевой ошибкой. Или на Linux Codex сообщает, что не может запустить песочницу.
Почему: Codex выполняет команды в песочнице. В режиме по умолчанию агент может менять файлы проекта, но исходящая сеть для команд выключена. На Linux и в WSL2 для песочницы нужна утилита bubblewrap.
Что делать. Если сеть нужна для одной сессии, включите её при запуске:
codex --config sandbox_workspace_write.network_access=true
Постоянно — в config.toml:
[sandbox_workspace_write]
network_access = true
Включайте сеть осознанно: так агент сможет скачивать пакеты и обращаться к внешним сервисам без отдельного подтверждения.
На Ubuntu и Debian bubblewrap ставится так:
sudo apt install bubblewrap
Как включить подробный лог
Если ни один пункт не подошёл, посмотрите, что именно происходит. Codex пишет подробный лог, если задать уровень и папку:
RUST_LOG=debug codex -c log_dir=./.codex-log
В соседнем терминале следите за файлом:
tail -F ./.codex-log/codex-tui.log
В логе видно, на какой адрес уходит запрос, какой провайдер выбран и какой код ответа вернулся. Обычно этого хватает, чтобы понять, какой из пунктов выше ваш. Не публикуйте лог целиком: в нём могут оказаться пути проекта и фрагменты кода.
Частые вопросы
Почему Codex не работает в России без VPN? Штатно Codex ходит к серверам OpenAI и входит через аккаунт OpenAI, а Россия не входит в список поддерживаемых стран. Без VPN он работает через своего провайдера — например, с ключом AI для кода от PurpleSchool с оплатой в рублях.
Где лежит конфиг Codex? В ~/.codex/config.toml, на Windows — в %USERPROFILE%.codex\config.toml. Папку можно переопределить переменной CODEX_HOME.
Codex работает в терминале, но не в VS Code. Что делать? Расширение использует тот же Codex CLI и тот же config.toml, но берёт переменные окружения у редактора. Закройте VS Code полностью и откройте из терминала, где задан ключ.
Как обновить Codex? Той же командой, которой устанавливали: npm install -g @openai/codex.
Итог
Почти все поломки Codex сводятся к четырём местам: PATH, вход в аккаунт OpenAI, секция провайдера в config.toml и песочница. Проверяйте их в этом порядке, а если не помогло — включите лог через RUST_LOG=debug. Если Codex нужен из России без VPN и зарубежной карты, подключите его к AI для кода от PurpleSchool: один ключ, оплата в рублях, вход в OpenAI не нужен.





Комментарии
0