Блог

Codex выдаёт «request timed out»? 7 способов, которые действительно помогают

Короткий ответ

Ошибка «request timed out» в Codex означает, что запрос ушёл, но ответ не пришёл за отведённое время. Это одна из самых частых неприятностей при работе с Codex CLI, и корневых причин у неё на удивление мало: недоступный эндпоинт, неправильно настроенный прокси, слишком большой запрос, замедление на стороне сервера или просто слишком короткий клиентский таймаут. Семь способов ниже закрывают все эти случаи — и обычно меньше чем за минуту можно понять, какой из них ваш.

Для разработчиков в сетях с ограничениями самый действенный шаг — направить Codex через стабильный API-шлюз вроде TeamoRouter: он одним махом убирает большинство сетевых причин. Дальше в статье разобраны все способы — от самого быстрого до самого основательного.

Прежде чем начать: какой именно у вас таймаут?

Таймауты бывают двух видов, и лечатся они по-разному.

  • Таймаут на стороне клиента: ваша машина перестала ждать. Ищите сообщения вроде Connection timeout after 30000ms, request timed out или fetch failed.
  • Таймаут на стороне сервера: провайдер слишком долго отвечал, чаще всего под высокой нагрузкой. Клиент может показать ту же обобщённую ошибку, но на самом деле запрос до сервера дошёл.

Быстрее всего отличить одно от другого помогает простой тест соединения:

bash
curl -sS -o /dev/null -w "HTTP %{http_code} in %{time_total}s\n" \
  https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"
  • Быстрый успех (HTTP 200 за секунды) → с эндпоинтом всё в порядке; проблема в конфигурации Codex или в конкретном запросе.
  • Зависание или ошибка соединения → ваша сеть вообще не может достучаться до эндпоинта.
  • Успех, но медленно (несколько секунд) → задержка на сервере; увеличьте таймауты и добавьте повторные попытки.

Способ 1. Убедитесь, что эндпоинт доступен

Прежде чем трогать конфигурацию, проверьте, что до API вообще можно добраться. Команда curl выше — самая быстрая проверка. Если она не проходит, проблема в сетевом маршруте, и стоит сразу перейти к способу 2 или 3.

Проверьте заодно, работают ли другие инструменты, зависящие от сети. Если npm install тоже тормозит или падает, дело в вашей сети, а не в Codex:

bash
# If npm is also timing out, it is a network issue
npm ping

Способ 2. Правильно настройте прокси

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

bash
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
export ALL_PROXY=socks5://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1
codex

Три типичные ошибки с прокси, которые приводят к таймаутам:

  • Прокси настроен в браузере, но не в терминале, где работает Codex.
  • HTTPS-прокси указан для порта, который слушает только HTTP, или наоборот.
  • Прокси запущен, но сам до OpenAI достучаться не может (проверьте через него curl).

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

bash
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
codex "Say hello"

Способ 3. Направьте трафик через API-шлюз (долгосрочное решение)

Если вы находитесь вне поддерживаемого региона, сидите за строгим файрволом или устали играть в прокси-рулетку, самый надёжный вариант — пустить Codex через API-шлюз. Шлюз даёт эндпоинт, доступный из вашей сети, и пересылает запросы в OpenAI со стабильной инфраструктуры, так что таймауты класса «не могу достучаться до API» исчезают.

Настройка делается в конфигурационном файле Codex:

toml
# ~/.codex/config.toml
model = "gpt-5.6-codex"
model_provider = "teamo"

[model_providers.teamo]
name = "TeamoRouter"
base_url = "https://api.teamorouter.com/v1"
env_key = "TEAMO_API_KEY"

Затем задайте ключ и запускайте:

bash
export TEAMO_API_KEY=tr_xxxxxxxx
codex

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

Способ 4. Увеличьте клиентский таймаут и добавьте повторные попытки

Иногда таймаут — это просто клиент, который сдался слишком рано. Долгие агентные задачи — крупный рефакторинг, поиск по всему репозиторию или модели, которым нужно время на размышления, — вполне закономерно могут выполняться дольше таймаута по умолчанию.

Если вы работаете через SDK, задайте таймаут явно. В Node.js:

js
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: process.env.OPENAI_BASE_URL, // optional gateway
  timeout: 300_000, // 5 minutes instead of a short default
  maxRetries: 3,
});

В Python:

python
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
    base_url=os.environ.get("OPENAI_BASE_URL"),
    timeout=300.0,
    max_retries=3,
)

Если вы запускаете Codex CLI напрямую, проверьте, не накладывает ли свой таймаут ваша обёртка или скрипт. Команда timeout в оболочке, лимит на время задачи в CI или обратный прокси перед Codex — всё это может оборвать долгий запрос.

Способ 5. Проверьте квоту, лимиты запросов и нагрузку на сервер

Запрос, дошедший до сервера, всё равно может завершиться таймаутом, если сервер перегружен или вас ограничивают по частоте. Это тот самый «серверный» вид таймаута, о котором шла речь выше. Признаки такие:

  • Таймауты случаются в основном в часы пик или на популярных моделях.
  • Таймаут появляется после долгого ожидания, а не мгновенно.
  • Другие запросы проходят за мгновения до или после неудачного.

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

Способ 6. Уменьшите размер запроса и очистите устаревшее состояние

Очень большие запросы могут превышать лимиты на объём данных или выполняться так долго, что это выглядит как таймаут. Три практических шага:

  1. Сократите отправляемый диалог и контекст. Если вы прикладываете огромный файл или длинную историю, оставьте только то, что действительно нужно для задачи.
  2. Очистите кэшированное состояние Codex. Устаревший кэш сессии или авторизации может вызывать странные сбои:
bash
# Re-authenticate and clear local session state
codex logout
codex login
  1. Перезапустите демон или агента. Если Codex поднимает локальный сервер, перезапустите его, чтобы сбросить состояние в памяти.

Цель — исключить вариант «запрос был просто слишком тяжёлым», прежде чем гоняться за сетевыми причинами.

Способ 7. Обновите Codex CLI и авторизуйтесь заново

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

bash
# Update to the latest version
npm install -g @openai/codex@latest

# Refresh authentication
codex login

После обновления проверьте версию и повторите запрос. Удивительно много жалоб на «request timed out» в старых версиях исчезает после обновления: новый клиент лучше работает с таймаутами, повторными попытками и повторным использованием соединений.

Все 7 способов в одной таблице

# Способ Что решает Трудозатраты
1 Проверить доступность эндпоинта Все случаи (диагностика) 1 мин
2 Настроить прокси в терминале Таймауты на сетевом маршруте 5 мин
3 Направить трафик через API-шлюз Таймауты из-за региона и сетей с ограничениями 10 мин
4 Увеличить клиентский таймаут и добавить повторы Долгие задачи 5 мин
5 Проверить квоту и лимиты запросов Ограничения на стороне сервера 5 мин
6 Уменьшить размер запроса / очистить состояние Слишком большие запросы 5 мин
7 Обновить CLI и авторизоваться заново Баги устаревшего клиента 5 мин

Какую роль играет TeamoRouter

Если таймауты — не разовый случай, а постоянная проблема, долгосрочное решение состоит в том, чтобы перестать зависеть от прямого доступа вашей локальной сети к OpenAI. TeamoRouter предоставляет стабильный эндпоинт API-шлюза, который работает из сетей с ограничениями, не усложняет конфигурацию Codex и умеет обходить медленный или перегруженный вышестоящий канал. Это не пластырь на один конкретный таймаут — он убирает из вашей работы целый класс таймаутов, вызванных сетью.

Часто задаваемые вопросы

Таймаут и блокировка — это одно и то же?

Нет. Таймаут означает, что запрос ушёл, но ответ не пришёл вовремя. Блокировка означает, что запрос отклонён ещё до обработки (из-за региона, IP или авторизации). Лечатся они по-разному: более удачная настройка таймаута не снимет блокировку, а шлюз не исправит таймаут, вызванный слишком большим запросом.

Почему Codex уходит в таймаут только иногда?

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

Какое значение таймаута выставить?

Универсального значения нет. Короткие интерактивные промпты выполняются за секунды, а крупный рефакторинг может занять минуты. Разумная отправная точка — 120–300 секунд с включёнными повторными попытками, а дальше подстраивайте значение под самую долгую из ваших реальных задач.

Может ли слишком много повторных попыток сделать хуже?

Да. Если эндпоинт действительно лежит или заблокирован, агрессивные повторы лишь растягивают ожидание. Держите число повторов скромным (2–3) и дайте ошибке проявиться, чтобы найти корневую причину, а не ходить по кругу.

Поможет ли VPN от таймаутов Codex?

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

Итог

У ошибки «Codex request timed out» короткий список причин, и решение зависит от того, какой вид таймаута вы наблюдаете. Начните с минутной диагностики через curl, для типичных клиентских случаев примените способы 2 и 4, а если вы работаете в сети с ограничениями, сразу переходите к способу 3 и направляйте трафик через API-шлюз. В большинстве случаев вы вернётесь к коду за считаные минуты — а со шлюзом проблема перестанет возвращаться. Попробуйте маршрут через шлюз и проверьте, исчезнут ли ваши таймауты.

Готовы подключиться?Войдите в консоль, пополните баланс и создайте API-ключ.
Codex выдаёт «request timed out»? 7 способов, которые действительно помогают · TeamoRouter