> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apiyi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Веб-сайт или API возвращает 502 — что мне делать?

> 502 — это кратковременный симптом автоперезапуска контейнера сервиса, обычно он устраняется в течение 1 минуты — неудачные вызовы никогда не тарифицируются, а повторная попытка клиента через 30 секунд проходит без сбоев

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

<Info>
  **502 — это временная ошибка, и на вашей стороне не требуется никаких изменений конфигурации:**

  1. **Корневая причина — автоматический перезапуск контейнера сервиса** — в течение окна перезапуска веб-консоль недоступна, а API возвращает 502; это одно и то же событие.
  2. **Восстановление обычно происходит автоматически в течение 1 минуты** — подождите 30–60 секунд и повторно отправьте запрос.
  3. **Неудачные вызовы никогда не тарифицируются** — во время 502 запрос фактически не доходит до сервиса, поэтому запись о тарификации не создаётся.
  4. **Добавьте автоматические повторные попытки на стороне клиента** — одна повторная попытка примерно через 30 секунд без проблем перекроет всё окно перезапуска.
</Info>

## Что происходит

`502 Bad Gateway` означает: **шлюзовой слой получил ваш запрос, но не получил ответа при его пересылке в backend-сервис**.

На APIYI подавляющее большинство кратковременных 502 вызвано **автоматическим перезапуском контейнера backend-сервиса**. Пока backend-процесс временно недоступен:

* **Веб-консоль** (панель управления, страницы пополнения и т. д.) не загружается или показывает ошибки
* **API** (`api.apiyi.com` и все остальные эндпоинты) возвращает 502

Оба элемента работают через один и тот же сервис, поэтому они **сбоят вместе и восстанавливаются вместе**. Как только обнаруживается аномалия, система автоматически завершает перезапуск — весь процесс **обычно занимает не более 1 минуты** и не требует ручного вмешательства.

<Note>
  **Этот тип 502 никак не связан с вашим кодом, ключом, балансом или сетевой конфигурацией.** Если вы видите это впервые, на стороне клиента нечего отлаживать — подождите 30–60 секунд и повторите попытку; в подавляющем большинстве случаев сервис уже восстановился.
</Note>

## Что следует сделать

<Steps>
  <Step title="Шаг 1: Подождите 30–60 секунд, затем повторно отправьте запрос">
    Перезапуск контейнера обычно завершается в течение 1 минуты. Просто повторно отправьте ваш API-запрос — поскольку неудачные вызовы никогда не тарифицируются, повторная отправка не приведёт к двойному списанию.
  </Step>

  <Step title="Шаг 2: Если веб-консоль не загружается, выполните принудительное обновление страницы">
    После восстановления браузер всё ещё может показывать кэшированную страницу ошибки. Используйте **Ctrl+Shift+R** (Windows) или **Cmd+Shift+R** (Mac), чтобы принудительно обновить страницу и увидеть обычный интерфейс.
  </Step>

  <Step title="Шаг 3: Если 502 сохраняется более 5 минут, обратитесь в поддержку">
    Кратковременная перезагрузка никогда не длится более нескольких минут. Если 502 **сохраняется более 5 минут**, это не обычная автоматическая перезагрузка — пожалуйста, свяжитесь с нами через способы связи в нижней части этой страницы, указав примерное время возникновения (с часовым поясом, например `14:30 (UTC+8)`).
  </Step>
</Steps>

## Добавление автоматических повторных попыток к программным вызовам

Если ваша нагрузка чувствительна к доступности, добавьте автоматические повторные попытки для временных ошибок вроде 502 на стороне клиента — одна повторная попытка примерно через 30 секунд покрывает всё окно перезапуска.

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    import time
    from openai import OpenAI, InternalServerError

    client = OpenAI(
        api_key="YOUR_API_KEY",
        base_url="https://api.apiyi.com/v1",
        max_retries=0,  # disable SDK default retries; the logic below takes over
    )

    def chat_with_retry(messages, retries=2, wait=30):
        for attempt in range(retries + 1):
            try:
                return client.chat.completions.create(
                    model="gpt-4o",
                    messages=messages,
                )
            except InternalServerError:
                # 502 / 503 and other 5xx: the request never reached the
                # service and is not billed, so retrying is always safe
                if attempt == retries:
                    raise
                time.sleep(wait)  # restarts finish within ~1 min; wait 30s

    resp = chat_with_retry([{"role": "user", "content": "Hello"}])
    print(resp.choices[0].message.content)
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    import OpenAI from "openai";

    const client = new OpenAI({
      apiKey: process.env.APIYI_API_KEY,
      baseURL: "https://api.apiyi.com/v1",
      maxRetries: 0, // disable SDK default retries; the logic below takes over
    });

    const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

    async function chatWithRetry(messages, retries = 2, waitMs = 30_000) {
      for (let attempt = 0; ; attempt++) {
        try {
          return await client.chat.completions.create({
            model: "gpt-4o",
            messages,
          });
        } catch (err) {
          // 502 / 503 and other 5xx: the request never reached the
          // service and is not billed, so retrying is always safe
          if (err.status < 500 || attempt >= retries) throw err;
          await sleep(waitMs); // restarts finish within ~1 min; wait 30s
        }
      }
    }

    const resp = await chatWithRetry([{ role: "user", content: "Hello" }]);
    console.log(resp.choices[0].message.content);
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    # curl's --retry automatically retries transient errors like 502/503/504
    curl https://api.apiyi.com/v1/chat/completions \
      --retry 2 --retry-delay 30 \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "gpt-4o",
        "messages": [{"role": "user", "content": "Hello"}]
      }'
    ```
  </Tab>
</Tabs>

<Warning>
  **Применяйте эту стратегию повторных попыток только к ошибкам типа 502/503, когда запрос так и не дошёл до сервиса.** Запросы, прерванные таймаутом на стороне клиента (или `524`), могут по-прежнему выполняться на стороне сервера и тарифицируются как обычно — бездумное повторение таких запросов приводит к двойному списанию. Для этого класса проблем см. [Как избежать таймаутов API](/ru/faq/timeout-configuration).
</Warning>

<Tip>
  Для высокочастотных нагрузок вы также можете быстро проверять с помощью **экспоненциальной задержки** (1 секунда, затем 2, затем 4) — 502 из-за кратковременного сетевого сбоя обычно исчезают в течение нескольких секунд. Если эти попытки всё равно не увенчаются успехом, вернитесь к интервалу в 30 секунд, чтобы покрыть случай перезапуска контейнера.
</Tip>

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

<AccordionGroup>
  <Accordion title="Тарифицируются ли запросы, сделанные во время 502?">
    **Нет.** 502 означает, что запрос фактически так и не дошёл до backend-сервиса — обращения к модели не было, поэтому **ничего не появится в ваших записях тарификации**.

    Это также удобный диагностический признак: если у неудачного запроса нет записи тарификации в вашем [журнале вызовов](/ru/faq/call-logs), значит, он не обрабатывался на стороне сервера, и вы можете безопасно отправить его повторно.
  </Accordion>

  <Accordion title="Чем 502 отличается от таймаута, 429 или 524?">
    * **`502`**: backend-сервис временно недоступен (идёт перезапуск контейнера). Подождите 30-60 секунд и повторите попытку; не тарифицируется.
    * **Таймаут / разорванное соединение**: таймаут вашего клиента слишком короткий — сервер может всё ещё выполнять запрос и тарифицировать его обычным образом. См. [Как избежать таймаутов API](/ru/faq/timeout-configuration).
    * **`429`**: достигнут лимит параллельных запросов или лимит запросов; это не связано с доступностью сервиса. См. [Лимиты параллельных запросов API](/ru/faq/api-concurrency).
    * **`524`**: вы используете эндпоинт CDN (`api-cf.apiyi.com`) с запросом, превышающим примерно 100 секунд — переключитесь на другой эндпоинт.

    Это требует совершенно разных действий: **напрямую повторно отправлять следует только 502/503**.
  </Accordion>

  <Accordion title="Почему веб-консоль и API отказывают одновременно?">
    Веб-консоль и API работают поверх одного и того же сервиса. Во время перезапуска контейнера оба становятся **недоступны одновременно и восстанавливаются одновременно** — так что «сайт тоже недоступен» как раз и подтверждает, что это временный инцидент на стороне платформы, а не проблема в конфигурации вашего клиента.
  </Accordion>

  <Accordion title="Будет ли это происходить часто?">
    Нет — это не регулярное явление. Временные 502 обычно связаны с резкими всплесками трафика и возникают нерегулярно.

    **По состоянию на август 2026 года мы обновляем и масштабируем backend-серверы**, что значительно снизит частоту таких временных 502. При любом инциденте на стороне платформы мы сразу публикуем обновления статуса и ход восстановления в [ленте текущего статуса](/en/live).
  </Accordion>

  <Accordion title="Как понять, проблема это на стороне платформы или в моей сети?">
    Два быстрых способа проверки:

    1. **Откройте веб-консоль**: если `api.apiyi.com` возвращает 502, а консоль тоже не загружается, скорее всего, это временный перезапуск на стороне платформы — подождите минуту.
    2. **Смените сеть**: попробуйте мобильный интернет (другой оператор), чтобы загрузить консоль, или выполните команду ниже. Если там всё работает, проблема в вашей локальной сети или прокси.

    ```bash theme={null}
    curl -I https://api.apiyi.com/v1/models \
      -H "Authorization: Bearer YOUR_API_KEY"
    ```

    Если всё по-прежнему возвращает 502 в другой сети более 5 минут, обратитесь в поддержку.
  </Accordion>
</AccordionGroup>

## Связанная документация

<CardGroup cols={2}>
  <Card title="Как избежать тайм-аутов API" icon="timer" href="/ru/faq/timeout-configuration">
    Настройки тайм-аута, задержка reasoning-моделей и диагностика 524
  </Card>

  <Card title="Нужен ли мне прокси для использования API?" icon="wifi" href="/ru/faq/network-proxy">
    Примечания по прямому подключению и сетевые требования
  </Card>

  <Card title="Где находятся серверы APIYI?" icon="server" href="/ru/faq/server-location">
    Расположение узлов, тестирование задержки и рекомендации по покупке
  </Card>

  <Card title="Доступность сервиса и SLA" icon="shield-check" href="/ru/faq/sla-guarantee">
    Обязательства по доступности и реагирование на инциденты
  </Card>
</CardGroup>

## Свяжитесь с нами

<CardGroup cols={2}>
  <Card title="Поддержка WeCom" icon="message-circle" href="https://work.weixin.qq.com/kfid/kfc9adfd5810ece25ec">
    <img src="https://mintcdn.com/apiyillc/fpi567ydpk7adDt0/images/wecom-qrcode.png?fit=max&auto=format&n=fpi567ydpk7adDt0&q=85&s=7286b96e94110e3a48798b649df1b45b" alt="QR-код поддержки WeCom" style={{maxWidth: "180px"}} width="400" height="400" data-path="images/wecom-qrcode.png" />

    Сканируйте QR-код или нажмите на эту карточку, чтобы напрямую связаться со службой поддержки

    Разбор постоянных сообщений об ошибке 502 и первичная обработка инцидентов
  </Card>

  <Card title="Электронная почта" icon="mail">
    **Поддержка**: [support@apiyi.com](mailto:support@apiyi.com)

    **Бизнес**: [business@apiyi.com](mailto:business@apiyi.com)
  </Card>
</CardGroup>
