FAQ
Устранение неполадок
Решайте проблемы с аутентификацией, моделями, streaming, задачами и лимитами, отталкиваясь от симптомов.
Начните с симптома, затем выполните исправление. Большинство сбоев связаны с base URL, key, ID модели или балансом.
Таблица по симптомам
| Симптом | Вероятная причина | Исправление |
|---|---|---|
401 UNAUTHORIZED | Key отсутствует, неверен, отозван или не отправлен | Отправьте Authorization: Bearer $FELO_API_KEY; если key отозван, создайте новый |
402 INSUFFICIENT_CREDITS | Баланса не хватает на вызов | Пополните в Console Billing |
| 404 на каждом запросе | Base URL содержит путь, который endpoint добавляет сам | Используйте https://openapi.felo.ai/api/v1 для клиентов OpenAI и https://openapi.felo.ai/api для клиентов Anthropic |
| 404 на одной модели | ID модели не публичный или endpoint её не обслуживает | Проверьте ID модели на странице моделей и в документации endpoint'а |
Ошибка 400 model или max_tokens | Отсутствует обязательное поле или модель не принимает форму запроса | Добавьте max_tokens для Messages; удалите неподдерживаемые поля |
| 429 | Лимит запросов или ограничение upstream-провайдера | Прочитайте Retry-After; см. Ошибки, лимиты и повторные попытки |
| 5xx | Сбой upstream или сервиса | Повторите с backoff; если не проходит, приложите request_id |
| Stream подключается, но ничего не приходит | Прокси буферизует ответ или парсер ожидает неверный формат | Читайте поток инкрементально; отключите буферизацию ответа в прокси |
| Задача никогда не завершается | Неверный endpoint опроса или не обработан терминальный статус | Опрашивайте собственный endpoint статуса задачи и останавливайтесь на терминальных значениях |
| Вызовы инструментов игнорируются | Модель не заявляет эту возможность | Проверьте supported_parameters в каталоге |
| Data API возвращает 404 | Префикс /v1/beta добавлен дважды | Используйте путь точно как в справочнике |
Аутентификация
Отозванный key возвращает сообщение с префиксом key:
{
"status": 401,
"code": "UNAUTHORIZED",
"message": "API Key has been revoked (keyPrefix=...)"
}Чек-лист:
- Заголовок —
Authorization: Bearer <key>для Model API и Felo APIs. - Data API также принимает
X-API-Key: <key>. - Key не обёрнут в кавычки и не содержит завершающего перевода строки из скопированной переменной окружения.
- В окружении развёртывания переменная действительно задана; key, работающий локально, может отсутствовать в production.
- Key не удалён и не ротирован. Удалённый или ротированный key нельзя показать снова; создайте новый.
Создание key и ограничения см. в разделе Аутентификация.
Ловушки base URL
| Клиент | Правильный base URL |
|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 |
| Anthropic SDK | https://openapi.felo.ai/api |
| Прямой model endpoint | https://openapi.felo.ai/api/v1/chat/completions, /responses или /messages |
| Data API | https://openapi.felo.ai/v1/beta |
Felo /v2 APIs | https://openapi.felo.ai/v2 |
Две частые ошибки:
- Добавление
/chat/completionsк base URL, который SDK уже расширяет. - Установка Anthropic base URL в
https://openapi.felo.ai/api/v1. SDK добавляет/v1/messages, и запрос превращается в/api/v1/v1/messages.
Проблемы с ID модели
ID моделей — это публичные ID из каталога, а не внутренние имена upstream-провайдера и не отображаемые имена.
- Смотрите ID на странице моделей или в
GET /api/v1/models. - Убедитесь, что модель поддерживает протокол, который вы вызываете (
supported_protocols). - Если вы закрепили канал, убедитесь, что он опубликован и исполняем для этой модели. Недоступный канал — не fallback.
См. Каналы и маршрутизация провайдеров.
Проблемы со streaming
- Устанавливайте
stream: trueв теле запроса, а не как query-параметр. - Читайте тело ответа как поток. Ожидание полного ответа лишает streaming смысла.
- Некоторые прокси и serverless-платформы буферизуют ответы. Отключите буферизацию для маршрута, который проксирует запрос.
- Chat Completions стримит
choices[0].delta, а неchoices[0].message. Итоговый контент приходит множеством chunks. - При обрыве соединения поток может закончиться без чистого терминального события. Считайте оборванное соединение незавершённым ответом.
Проблемы с асинхронными задачами
- Опрашивайте endpoint статуса, принадлежащий группе задачи. Рабочие процессы Felo используют
GET /v2/tasks/{task_id}/status; задачи видео и изображений моделей — собственные endpoint'ы генерации. - Останавливайтесь на каждом терминальном статусе, включая ошибки и истечения, а не только на успехе.
- Callback'и видео и изображений сейчас игнорируются. Не ждите webhook.
- URL результата может быть недолговечным. Если скачивание истекло, запросите новый URL у endpoint'а статуса.
- Проверьте задачу перед повторной отправкой. Повторная отправка работающей задачи создаёт дубликат, и обе будут оплачены.
См. Асинхронные задачи.
Проблемы с Data API
- Сохраняйте точный путь метода из справочника Data API.
- Тела запросов зависят от поставщика. Поле, работающее у одного поставщика, не гарантировано у другого.
- Ошибка провайдера может прийти внутри ответа 4xx с сообщением конкретного провайдера. Логируйте
request_idи тело ответа.
Напоминания о безопасности
- Никогда не помещайте API key в код браузера, бандл мобильного приложения или публичный репозиторий. Держите его на сервере и проксируйте запросы.
- Не логируйте полный key. Если нужно идентифицировать, логируйте префикс.
- Немедленно ротируйте key, если он мог утечь.
Перед обращением в поддержку
Соберите:
- Endpoint и HTTP method.
- HTTP-статус,
codeиrequest_id. - ID модели или ID задачи.
- Время с часовым поясом.
- Минимальное тело запроса без секретов.
Отправьте это в поддержку вместе с email аккаунта. Не включайте полный API key.