Решение проблем
Быстро чините проблемы API OneProvider: симптом, причина и решение для 400, 401, 403, 404, 429, 503, 504, входа в Claude Code, VPN и обращения в поддержку.
Двенадцать конкретных сценариев отказа, которые мы видим каждую неделю. Симптом → причина → однострочный фикс.
Все модели, характеристики и цены Индекс документации для AI-агентов:https://oneprovider.dev/docs/llms.txt Перед тем как разбираться Прогоните curl -s https://api.oneprovider.dev/v1/models -H "x-api-key: $ANTHROPIC_API_KEY". Если вернулся непустой JSON-список моделей — сеть и авторизация в порядке; что бы вы ни ловили, это специфика запроса, а не инфраструктуры. Топ-вопросы
Нужно ли логиниться в Claude Code? Что делать с 401 и «Auth conflict»
Нет. Ключ OneProvider работает без входа в аккаунт Claude. Для Claude Code задайте ANTHROPIC_BASE_URL и ANTHROPIC_AUTH_TOKEN (ключ уходит как Authorization: Bearer). Эта переменная главнее сохранённого входа и других переменных и не требует подтверждения. ANTHROPIC_API_KEY (заголовок x-api-key) наш шлюз тоже принимает, но Claude Code в интерактивном режиме один раз просит подтвердить такой ключ и молча игнорирует отклонённый (включить снова: /config → Use custom API key).
Если видите экран входа, 401 Invalid API key или Auth conflict, идите по шагам:
- Выполните
/status: должны бытьAnthropic base URLс адресом OneProvider и строкаAuth tokenилиAPI keyс вашей переменной. Если тамLogin methodс аккаунтом claude.ai, переменная не дошла до сессии. Auth conflict(и вход в claude.ai, и ключ): выполните/logout, переменные останутся.401 Invalid API key: в окружении лежит чужойANTHROPIC_AUTH_TOKEN(токен другого сервиса) и перекрывает ключ, или в нём лишняя кавычка или пробел. Задайте в нём ключ OneProvider целиком, без кавычек.- Экран входа остаётся, хотя переменные заданы в
.claude/settings.jsonпроекта: этот блок читается после первого запуска, поставьте переменные в shell или в~/.claude/settings.json.
# macOS / Linux: что реально задано
env | grep -E 'ANTHROPIC_(BASE_URL|AUTH_TOKEN|API_KEY)' | sed -E 's/(sk-.{4}).*/\1.../'
grep -nE 'ANTHROPIC_(AUTH_TOKEN|API_KEY)' ~/.zshrc ~/.bashrc 2>/dev/null Нужно ли логиниться в ChatGPT для Codex CLI?
Нет. Codex CLI читает OPENAI_BASE_URL и OPENAI_API_KEY из окружения. Когда обе переменные указывают на OneProvider — Codex полностью обходит ChatGPT-вход и ходит на наш эндпоинт. Поэтому экран авторизации можно пропустить.
Если мешает токен от прошлой сессии или экспорт в shell-rc:
bashunset OPENAI_API_KEY
rm -f ~/.codex/auth.lock
# затем заново экспортируйте значения из redeem-страницы и перезапустите codex
export OPENAI_BASE_URL="https://api.oneprovider.dev/v1"
export OPENAI_API_KEY="sk-..."
codex Подробнее — на странице Codex (OpenAI) .
Нужен ли VPN? Есть региональные ограничения?
VPN не нужен — региональных ограничений у OneProvider нет. Эндпоинт api.oneprovider.dev доступен по всему миру и не геоблокирует трафик.
Более того, VPN/VLESS-прокси часто ломают подключение к API двумя путями:
- SSE-стриминг буферизуется внутри прокси — стрим обрывается посреди токена.
- HTTP/2 + ALPN сбивается на ретранслирующих узлах — клиент видит
connection reset.
Если ловите оборванный стрим, connection reset или таймауты, временно отключите VPN/VLESS и повторите. С нашей стороны стрим не буферизуется.
Ошибка парсинга JSON в конфиге (или ошибка 429)
Самая частая причина — «умные» кавычки (“ ”) в JSON-конфиге. Они появляются при копировании из мессенджера, Notion, Google Docs или браузера, где кавычки автозаменяются на типографские. Парсер JSON принимает только прямые ASCII-кавычки (").
Иногда такой битый конфиг проявляется не как «JSON parse error», а как 429: клиент принимает отсутствие ответа за rate-limit. Лечится одинаково:
- Замените все
“”на"вручную. - Копируйте конфиг прямо из этой документации — там кавычки уже правильные.
- Проверяйте файл через
cat -v config.jsonилиjq . config.json— оба покажут невалидный байт.
# Быстрая проверка: jq упадёт на первой кривой кавычке
jq . ~/.claude/settings.json
# Авто-замена умных кавычек на прямые (макрос для sed)
sed -i.bak $'s/[\u201c\u201d]/"/g' ~/.claude/settings.json Матрица симптомов
| Симптом | Вероятная причина | Фикс |
|---|---|---|
| 401 authentication_error на каждом запросе | Ключ не задан, повреждён или содержит лишний перенос/кавычку после copy-paste. | echo "${ANTHROPIC_API_KEY:?missing}" | wc -c # должно быть 68 (sk- + 64 hex + \n) |
| 429 «Insufficient balance on this API key» | Закончился баланс кабинета или лимит трат ключа. Повторы не помогут: в ответе x-should-retry: false. | curl -sH "Authorization: Bearer $ANTHROPIC_API_KEY" https://api.oneprovider.dev/v1/dashboard/balance # затем пополните кабинет (бот или app.oneprovider.dev) |
| 403 permission_error «API key expired» | Срок действия ключа истёк. | Продлите ключ или выпустите новый в кабинете (раздел «Ключи»). |
| 404 «The requested API endpoint does not exist» | Неверный base URL: /v1 пропущен или повторён (/v1/v1). | OpenAI-клиенты: https://api.oneprovider.dev/v1. Claude Code и Anthropic SDK: https://api.oneprovider.dev (без /v1). |
| 429 rate_limit_error на всплесках | Слишком много запросов за короткое время. | Соблюдайте Retry-After, повторяйте с растущей паузой. Снизьте число параллельных запросов. |
| 400 «Model X is not available on this API key» | Тариф ключа не включает эту модель, или имя модели устарело. | Выберите модель из GET /v1/models или из таблицы на /docs/api/models. |
| 503 «Temporary provider issue on our side, retry in a minute» | Временный сбой на нашей стороне. С ключом и запросом всё в порядке. | Повторите с растущей паузой: 1 с, 2 с, 4 с, до минуты. |
| 504 «Service timed out; retry later» на нестриминговом запросе | Долгая генерация (большой контекст + tools) не начала отвечать за 6 минут или шла дольше 10 минут. | Передайте stream:true: стрим начинает отвечать сразу. Если ответ дольше 10 минут, разбейте задачу. |
| Вызов инструмента подменён прозой («Я бы вызвал X…») | Клиент послал tool_choice:{any|tool} → API заменил его на auto + подсказку; модель не приняла подсказку. | Уточните user-промпт («Используй инструмент X, чтобы сделать Y») или переключитесь на более мощную модель. |
| OPENAI_API_KEY перекрывает мой ключ OneProvider | Старый export в shell rc (~/.zshrc, ~/.bashrc) затеняет новое значение. | unset OPENAI_API_KEY в текущем shell, затем grep -nE 'OPENAI_API_KEY' ~/.zshrc и почистите. |
| Codex говорит «Invalid API key», хотя auth.json настроен | Codex предпочитает shell-export OPENAI_API_KEY поверх ~/.codex/auth.json. | unset OPENAI_API_KEY; rm -f ~/.codex/auth.lock; перезапустите codex. См. /docs/clients/codex. |
| Cursor / Claude Code: стрим обрывается посреди токена | Почти всегда клиентский network-proxy или VPN буферит SSE-чанки. | Выключите proxy/VPN и повторите. Мы отдаём чанки сразу, без буферизации. |
Диагностические однострочники
Если матрица не подошла под ваш случай, соберите три улики:
bash# 1. Подтвердить досягаемость + авторизацию
curl -sS -o /dev/null -w "HTTP %{http_code} total %{time_total}s\n" \
https://api.oneprovider.dev/v1/models -H "x-api-key: $ANTHROPIC_API_KEY"
# 2. Воспроизвести падающий вызов с -v (verbose-заголовки)
curl -sv https://api.oneprovider.dev/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5-5","max_tokens":32,"messages":[{"role":"user","content":"hi"}]}'
# 3. Проверить текущий баланс (он же виден в кабинете: бот @oneprovider_robot или app.oneprovider.dev)
curl -s https://api.oneprovider.dev/v1/dashboard/balance \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" Когда эскалировать
Пришлите три вывода выше + первые 8 символов ключа + UTC-таймштамп в @Oneproviderhelpbot . Этого хватит, чтобы мы нашли ваш запрос в логах за минуты. См. Получить поддержку — что нам не нужно (и о чём мы никогда не спрашиваем).
Последнее обновление: 2026-10-05 Нашли ошибку? @Oneproviderhelpbot