Anthropic Claude · HTTP 529 · overloaded_error

Claude API: ошибка 529 overloaded_error

529 overloaded_error — временная перегрузка API Anthropic из-за высокой нагрузки по всем пользователям, а не ваш лимит. Повторите запрос с растущей паузой. При стриминге такая ошибка может прийти уже после ответа 200 — как событие error внутри потока.

Обновлено: · по официальной документации Anthropic Claude

529 и 429 — разные вещи

429 rate_limit_error означает, что превышены лимиты вашей организации. 529 overloaded_error — сервис перегружен у всех, и ваши лимиты тут ни при чём. Поэтому повышение уровня аккаунта от 529 не спасает.

Как обрабатывать

Повторять с экспоненциальной паузой и ограничением попыток; официальный SDK по умолчанию делает два повтора ошибок 5xx. Сохранять request-id из заголовков — он нужен для обращения в поддержку.

В стриминге проверять события error в потоке: HTTP-статус уже 200, а ошибка приходит позже. Не считать ответ успешным только по статусу.

Запасной вариант

Если перегрузка затягивается, отправьте запрос в другую модель. Через API429 тем же ключом можно перейти, например, с Claude на GPT или Gemini — меняется только поле model.

Повтор запроса с Retry-After: пример на Python

import email.utils, os, random, time, requests

URL = "https://gateway.api429.com/v1/chat/completions"
HEADERS = {"Authorization": "Bearer " + os.environ["API429_API_KEY"]}
TRANSIENT = {429, 500, 503, 529}

def retry_after(value):
    if not value:
        return None
    if value.isdigit():
        return int(value)
    return max(0, email.utils.parsedate_to_datetime(value).timestamp() - time.time())

def chat(payload, attempts=5):
    for attempt in range(attempts):
        r = requests.post(URL, headers=HEADERS, json=payload, timeout=120)
        if r.status_code not in TRANSIENT:
            r.raise_for_status()
            return r.json()
        wait = retry_after(r.headers.get("Retry-After"))
        time.sleep(wait if wait is not None else min(60, 2 ** attempt) + random.random())
    r.raise_for_status()

Частые вопросы

Я превысил лимит?

Нет. 529 означает перегрузку API у всех пользователей, а не превышение ваших лимитов.

Сколько раз повторять?

Несколько раз с растущей паузой. Бесконечные повторы только усиливают нагрузку.

Почему ошибка пришла после 200 OK?

При стриминге ошибка может прийти событием error внутри потока, когда статус уже отправлен.

Что сохранить для поддержки?

Заголовок request-id из ответа.

Источники

Что дальше

Другие ошибки API

Telegram