kosareva.cloud

Ошибки 500, 502, 503 и 504 в API: internal server error и как их пережить

Пятисотые коды означают сбой на стороне сервера, а не в вашем запросе. Разбираем, чем они отличаются, что повторять и как не сделать хуже.

Коротко: Internal server error, то есть ошибка API с кодом 500, значит, что сервер получил корректный запрос и не смог его обработать из-за сбоя у себя. Соседние коды из той же семьи: 502 bad gateway, когда промежуточный узел не получил ответ от следующего, 503 service unavailable, когда сервис перегружен или на обслуживании, и 504 gateway timeout, когда узел ждал ответа и не дождался. У Anthropic перегрузка приходит как 529 overloaded_error, у DeepSeek как 503 Server is busy.

/ Подробнее

Что важно знать

Общее у всех: ваш запрос, ключ и баланс ни при чём, менять в них ничего не надо. Отличие в том, что делать. 500 и 502 обычно кратковременны и проходят при повторе через несколько секунд. 503 и 529 говорят о перегрузке: повторять надо с растущей паузой, а при затяжном сбое переключить модель. 504 требует осторожности: сервер мог выполнить запрос, а ответ потерялся по дороге.

Правило для продакшена: повторять 5xx автоматически, не больше 3–5 попыток с паузой, растущей вдвое, а для запросов с побочными эффектами передавать ключ идемпотентности, чтобы повтор не создал дубль.

/ На kosareva.cloud

Запасная модель по тому же ключу

Коды 5xx и тело ответа приходят без изменений, повторы в SDK работают как обычно. Если модель недоступна, по тому же ключу можно переключиться на соседнюю из каталога.

Адрес
https://api.kosareva.cloud/v1, ключ из кабинета
Оплата
Карта РФ или СБП от 50 ₽, компаниям — по счёту
Доступ
Без VPN, запросы идут с российских IP
from openai import OpenAI

client = OpenAI(
    api_key="ВАШ_API_КЛЮЧ",
    base_url="https://api.kosareva.cloud/v1",
)

response = client.chat.completions.create(
    model="gpt-5-6",
    messages=[{"role": "user", "content": "Привет!"}],
    stream=True,
)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "ВАШ_API_КЛЮЧ",
  baseURL: "https://api.kosareva.cloud/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-5-6",
  messages: [{ role: "user", content: "Привет!" }],
  stream: true,
});
curl https://api.kosareva.cloud/v1/chat/completions \
  -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5-6","messages":[{"role":"user","content":"Привет!"}],"stream":true}'
/ Почему

Откуда берётся ошибка

500 internal server error

необработанное исключение у поставщика. Чаще всего единичный случай, при повторе проходит.

502 bad gateway

прокси или балансировщик не получил ответ от сервера модели. Типично при выкатке новой версии или сбое одного узла.

503 service unavailable

перегрузка или обслуживание. У DeepSeek в пиковые часы это Server is busy, у Anthropic похожая ситуация приходит как 529.

504 gateway timeout

узел ждал ответа дольше своего лимита. Частая причина: длинная генерация без стриминга.

Ошибка у провайдера модели за агрегатором

у OpenRouter это 502 Provider returned error, сбой не у агрегатора, а у того, кто обслуживает модель.

/ Коды

Что значит каждый код и что делать

Код и текстПричинаЧто делать
500 internal server errorСбой на сервере поставщикаПовторить через 1–2 секунды, до 3–5 попыток
502 bad gatewayПрокси не получил ответ от узла моделиПовторить с растущей паузой; если держится, сменить модель
503 service unavailable / Server is busyПерегрузка или обслуживаниеПауза 5–10 секунд, повтор, при затяжном сбое другая модель
504 gateway timeoutОтвет не пришёл за лимит узлаВключить стриминг, укоротить запрос, повторять только идемпотентные
529 overloaded_error (Anthropic)Модель перегруженаРастущая пауза и повтор, запасная модель наготове

Сроки пауз ориентировочные; если в ответе есть Retry-After, ждите столько, сколько в нём написано.

/ Что делать

Порядок действий

01

Убедитесь, что это 5xx, а не 4xx

Код 4xx требует правки запроса, ключа или баланса, и повторы там бесполезны. Код 5xx означает, что чинить у себя нечего, можно повторять.

02

Включите повторы с растущей паузой

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

from openai import OpenAI
client = OpenAI(
    base_url="https://api.kosareva.cloud/v1",
    api_key="KEY",
    max_retries=4,
    timeout=120,
)
03

Сделайте повтор безопасным

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

04

Держите запасную модель

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

05

Включите стриминг для длинных ответов

При stream=true первый байт приходит быстро, и промежуточные узлы не обрывают соединение по таймауту, из-за чего и возникает 504.

/ По инструментам

Где это чинится в разных инструментах

Python и Node.js SDK

Исключение InternalServerError для всех 5xx. С max_retries SDK повторит сам; ловите исключение только после исчерпания попыток.

Cursor, Cline, Continue

Ошибка показывается в чате. Нажмите повтор через несколько секунд; если повторяется на каждом запросе, смените модель в настройках.

n8n и Make

Включите Retry On Fail с паузой 5–10 секунд и 3–5 попытками. Для сценариев с записью в базу или отправкой писем проверьте, что повтор не создаст дубль.

LangChain

with_retry() на модели или max_retries в конструкторе; для запасной модели есть with_fallbacks().

/ FAQ

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

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

От 3 до 5 попыток с паузой, растущей вдвое: 1, 2, 4, 8 секунд. Больше обычно не помогает, лучше переключить модель.

Спишут ли деньги за запрос с ошибкой 500?

Как правило, нет: поставщики считают токены по обработанным запросам. При 504 запрос мог быть выполнен, поэтому сверяйте расход по ключу.

Чем 503 отличается от 429?

При 429 лимит ваш: слишком много запросов с вашего ключа. При 503 перегружен сам сервис, и ваш темп запросов ни при чём.

Почему 500 повторяется на одном и том же запросе?

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

Как понять, что сбой у поставщика, а не у меня?

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

Ключ, который работает из России

OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.

Получить ключ