Строка exceeded retry limit, last status: 429 Too Many Requests не означает «у аккаунта закончилась квота повторов». Она говорит о другом: Codex несколько раз получил ответ 429, исчерпал собственное число автоматических попыток и прекратил задачу.
Не запускайте тот же большой запрос одновременно в новых окнах. Сохраните уже изменённые файлы, остановите новые subagents и запишите точное сообщение, время с часовым поясом и request ID, если он показан. Затем определите маршрут запроса. Без этого одинаковый 429 можно ошибочно объяснить четырьмя разными счётчиками.
Два лимита в одной строке относятся к разным сторонам
retry limit — ограничение поведения клиента. Оно показывает, сколько раз Codex пытался восстановиться. last status: 429 — последний ответ сервера или шлюза. Он не раскрывает подтип ошибки.
В актуальной документации OpenAI API об ошибках код 429 используется не только при слишком частых запросах. Отдельно перечислены исчерпание предоплаченных кредитов, лимит расходов organization, лимит расходов project и назначенный organization usage limit. В финансовых случаях error.code точнее широкого error.type и определяет действие.
Если настроен сторонний base_url, корпоративный proxy, router моделей или другой provider, ответ мог вернуть именно он. Наличие остатка в ChatGPT ничего не говорит о пропускной способности или балансе этого маршрута.
Сначала установите владельца запроса
Пока состояние сохранено, не меняйте одновременно аккаунт, модель, сеть, ключ и provider. Один контролируемый осмотр полезнее серии случайных «исправлений».
| Как запущен Codex | Где искать ограничение | Какие данные важны |
|---|---|---|
| Вход через ChatGPT | Codex Usage активного аккаунта или workspace | пятичасовое и недельное окна, reset, credits, CLI /status |
| Прямой OpenAI API key | organization/project API | тело ошибки, error.code, Retry-After, Limits и Billing |
| Управляемый workspace | настройки Business, Enterprise или Edu | seat, общие/купленные credits, политика и владелец бюджета |
| Сторонний gateway | кабинет и логи provider | фактический base URL, headers, request ID, баланс, модельный пул и статус |
Текущая документация Codex об использовании направляет к Usage Dashboard для проверки актуальных лимитов аккаунта и указывает /status для просмотра остатка в Codex CLI. Поля зависят от версии, клиента, авторизации, плана и rollout. Фиксируйте то, что действительно показывает ваш интерфейс.
Если Account B демонстрирует то же ограничение, что и Account A, перейдите к отдельной проверке аккаунта, workspace и API organization. Повторные запросы не отличат старую сессию от общего рабочего пространства.
Почему видимый остаток не опровергает 429
Фраза «лимит ещё есть» может означать недельный процент, восстановившееся пятичасовое окно, ChatGPT credits, API-баланс, свободный spend limit проекта или деньги у стороннего provider. Эти значения принадлежат разным договорам.
В описании токенов и кредитов ChatGPT OpenAI указывает, что расход зависит от модели, контекста, reasoning и инструментов. На подходящих планах доступные credits могут продолжить работу после included limits. Та же страница сообщает, что локальные сообщения и облачные задачи в планах ChatGPT используют общее пятичасовое окно и могут иметь дополнительные недельные ограничения. Это объясняет, почему число сообщений не равно стоимости, но не определяет источник конкретного 429.
До изменения настроек сохраните:
- клиент и его версию;
- ChatGPT-вход, API key или сторонний provider;
- аккаунт/workspace, а для API — organization/project, без полных идентификаторов;
- модель, reasoning, Fast и использование subagents;
- видимое состояние usage, reset, credits или баланса provider;
- локальные, облачные, scheduled и фоновые задачи;
- ошибку, timestamp, часовой пояс и request ID.

В поддержку нельзя отправлять API key, access token, OTP, credential-файлы, полный email, приватный код и полный платёжный скриншот.
Что делать после классификации
Сработало ограничение частоты
Для прямого OpenAI API официальная рекомендация — снизить частоту запросов и соблюдать Retry-After, если header присутствует. При собственном HTTP client без него применяется экспоненциальная задержка со случайным разбросом, ограничением числа попыток и общего времени. Официальные SDK OpenAI уже повторяют подходящие rate-limit ошибки и соблюдают Retry-After; учитывайте их попытки перед добавлением ещё одного слоя. Неудачные запросы также могут расходовать минутный лимит.
После сообщения exceeded retry limit Codex уже закончил свою серию попыток. Ручной запуск копий в нескольких сессиях увеличивает нагрузку. Остановите параллельные задачи, дождитесь указанного reset или интервала provider и проверьте один небольшой, чётко ограниченный шаг. Если он прошёл, возвращайте нагрузку постепенно.
Закончилось окно ChatGPT/Codex
При входе через ChatGPT смотрите Usage того же аккаунта или workspace. Не объединяйте пятичасовой и недельный показатели. Запишите показанное время восстановления, наличие credits и пересекающиеся агентные задачи.
Если управляющее окно явно исчерпано, ожидайте его реальный reset либо используйте доступные законные credits, если такая возможность есть и расход приемлем. Более лёгкая модель, короткий контекст и меньше инструментов помогают после восстановления, но не открывают уже закрытое окно.
API сообщает о credits, spend или usage limit
В прямом API прочитайте error.code. Значения credit_balance_exhausted, organization_spend_limit_exceeded, project_spend_limit_exceeded и organization_usage_limit_exceeded принадлежат разным владельцам.
OpenAI прямо предупреждает: повторение таких credit, spend или quota запросов не восстановит доступ. Нужен настоящий reset или изменение соответствующего баланса/лимита владельцем organization либо project. Замена ключа внутри того же проекта не создаёт новую квоту.
429 вернул сторонний gateway
Проверьте правила provider: rate-limit headers, независимый баланс, параллелизм, доступность модели и status. Шлюз может преобразовать upstream-ошибку в свой 429. Если исходный ответ не показан, корректная формулировка — «этот маршрут вернул 429», а не «OpenAI исчерпал квоту».
Меняйте один фактор: уменьшите параллелизм или выдержите указанный интервал, затем повторите маленький запрос с той же авторизацией и моделью. Не объясняйте сторонний контракт данными страницы ChatGPT Usage.
Подозрение на инцидент сервиса
Сопоставьте время и продукт с OpenAI Status. Подтверждённый инцидент даёт основание следовать официальной временной линии. Отсутствие публичного события означает только отсутствие публичного подтверждения, но не здоровье каждого аккаунта, региона или gateway.
Первый тест после восстановления должен быть маленьким

После reset, изменения лимита или восстановления provider убедитесь, что старые процессы и облачные задачи не продолжаются. Выберите действие с ясным окончанием и небольшим контекстом. Не меняйте аккаунт, маршрут, модель и режим во время теста.
Сделайте снимок управляющего meter до и после. Если малый шаг проходит, а большой снова получает 429, версия о нагрузке, параллелизме, контексте или коротком окне становится сильнее. Если даже малый шаг сразу возвращает тот же ответ, очередной большой запуск не добавит информации — вернитесь к quota, provider и status.
Такой опыт полезен и когда недельный процент падает неожиданно быстро. Он не заменяет детальный счёт, но отличает расход на видимую задачу от другого активного контура или необъяснённого движения.
Если сбой воспроизводится после выполнения нужного условия, подготовьте короткую хронологию: клиент и версия, способ входа, provider, модель и режим, точная ошибка, время и часовой пояс, request ID, видимые usage/reset, параллельная активность и минимальные шаги. Для API добавьте очищенный error.code и нужные rate-limit headers без Authorization.
Надёжный порядок таков: остановить дублирующую нагрузку, найти владельца запроса, прочитать доступный подтип, изменить именно нарушенное условие и выполнить один малый тест. Тогда ожидание, пополнение, обращение к администратору или тикет provider становятся доказанным следующим шагом, а не случайной попыткой.



