OneProvider

Naprawa błędów 401, 403, 429 i 5xx

Napraw problemy z API OneProvider: objaw, przyczyna i rozwiązanie dla 400, 401, 403, 404, 429, 503 i 504, logowania w Claude Code, VPN i kontaktu ze wsparciem.

Dwanaście konkretnych awarii, które widzimy co tydzień. Objaw → przyczyna → poprawka w jednej linii.

Wszystkie modele, możliwości i ceny Indeks dokumentacji dla agentów AI: https://oneprovider.dev/docs/llms.txt Zanim zaczniesz Uruchom curl -s https://api.oneprovider.dev/v1/models -H "x-api-key: $ANTHROPIC_API_KEY". Jeśli zwróci niepustą listę modeli w JSON, połączenie sieciowe i uwierzytelnianie działają — problem dotyczy konkretnego zapytania, a nie infrastruktury.

Najczęstsze pytania

Czy muszę się zalogować w Claude Code? A co z 401 i „Auth conflict”

Nie. Klucz OneProvider działa bez konta Claude. W Claude Code ustaw ANTHROPIC_BASE_URL i ANTHROPIC_AUTH_TOKEN (klucz jest wysyłany jako Authorization: Bearer). Ta zmienna ma pierwszeństwo przed zapisanym logowaniem i przed innymi zmiennymi, i nie wymaga zatwierdzania. Nasza brama przyjmuje też ANTHROPIC_API_KEY (nagłówek x-api-key), ale w trybie interaktywnym Claude Code raz prosi o zatwierdzenie takiego klucza, a odrzucony po cichu ignoruje (włącz go ponownie w /config → Use custom API key).

Jeśli widzisz ekran logowania, 401 Invalid API key albo Auth conflict, sprawdź krok po kroku:

  1. Uruchom /status: powinien pokazać Anthropic base URL OneProvider oraz wiersz Auth token lub API key z nazwą twojej zmiennej. Wiersz Login method z kontem claude.ai oznacza, że zmienna nie dotarła do sesji.
  2. Auth conflict (jednocześnie logowanie claude.ai i klucz): uruchom /logout; twoje zmienne zostaną.
  3. 401 Invalid API key: obcy ANTHROPIC_AUTH_TOKEN (token z innej usługi) nadpisuje twój klucz albo wartość ma przypadkowy cudzysłów lub spację. Ustaw pełny klucz OneProvider, bez cudzysłowów.
  4. Ekran logowania nie znika, mimo że zmienne są w .claude/settings.json projektu: ten blok jest czytany po pierwszej konfiguracji, więc umieść zmienne w powłoce lub w ~/.claude/settings.json.
bash
# macOS / Linux: what is actually set
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

Czy muszę się zalogować do ChatGPT, żeby używać Codex CLI?

Nie. Codex działa na samym kluczu, gdy provider oneprovider w ~/.codex/config.toml jest aktywny (env_key = "ONEPROVIDER_API_KEY"). Prośba o zalogowanie przez ChatGPT albo „You've hit your usage limit” oznacza, że provider nie jest aktywny i zapytanie poszło do ChatGPT.

Sprawdź po kolei: wiersze model_provider i model stoją na samej górze pliku, nad każdą [table]; Codex jest całkowicie zrestartowany, a zadanie nowe; klucz jest wyeksportowany w tym samym terminalu:

bash
codex logout
export ONEPROVIDER_API_KEY="sk-..."
# quick test without editing the file:
codex -c model_provider=oneprovider

Pełny opis krok po kroku na stronie Codex (OpenAI) .

Czy potrzebuję VPN? Czy są ograniczenia regionalne?

VPN nie jest potrzebny — OneProvider nie ma ograniczeń regionalnych. Endpoint api.oneprovider.dev jest dostępny na całym świecie i nie blokuje ruchu geograficznie.

Co gorsza, VPN i proxy VLESS często psują połączenie z API na dwa sposoby:

  • Strumień SSE jest buforowany w proxy — strumień urywa się w połowie tokena.
  • Negocjacja HTTP/2 + ALPN zawodzi na przekaźnikach — klient widzi connection reset.

Jeśli widzisz urwane strumienie, connection reset albo losowe timeouty, wyłącz VPN / proxy VLESS i spróbuj ponownie. Po naszej stronie strumieni nie buforujemy.

Błąd parsowania JSON w konfiguracji (albo 429)

Najczęstsza przyczyna to „ozdobne” cudzysłowy (“ ”) w konfiguracji JSON. Pojawiają się przy kopiowaniu z komunikatora, Notion, Dokumentów Google lub przeglądarki, która automatycznie zamienia proste cudzysłowy ASCII na typograficzne. Parsery JSON akceptują tylko zwykły ASCII ".

Czasem zepsuta konfiguracja nie objawia się jako „JSON parse error”, lecz jako 429: klient bierze brak odpowiedzi za limit zapytań. Poprawka jest ta sama:

  • Ręcznie zamień każdy “ ” na ".
  • Kopiuj konfiguracje prosto z tej dokumentacji — cudzysłowy są tu już poprawne.
  • Sprawdź poleceniem cat -v config.json lub jq . config.json — oba wskażą błędny bajt.
bash
# Quick check: jq fails on the first smart quote
jq . ~/.claude/settings.json
# Auto-replace smart quotes with straight quotes
sed -i.bak $'s/[\u201c\u201d]/"/g' ~/.claude/settings.json

Tabela objawów

Dane referencyjne
ObjawPrawdopodobna przyczynaPoprawka
401 authentication_error przy każdym żądaniuKlucz nie jest ustawiony, ma błędny format albo zawiera przypadkowy znak nowej linii lub cudzysłów po skopiowaniu.echo "${ANTHROPIC_API_KEY:?missing}" | wc -c # oczekiwane 68 (sk- + 64 znaki hex + znak nowej linii)
429 „Insufficient balance on this API key”Klucz nie ma już salda. Ponawianie nie pomoże: odpowiedź ma nagłówek x-should-retry: false.curl -sH "Authorization: Bearer $ANTHROPIC_API_KEY" https://api.oneprovider.dev/v1/dashboard/balance # potem doładuj swój Panel (bot lub app.oneprovider.dev)
403 permission_error „API key expired”Klucz stracił ważność.Przedłuż klucz albo utwórz nowy w swoim Panelu (strona Klucze).
404 „The requested API endpoint does not exist”Błędny base URL: brakuje /v1 albo jest podwojone (/v1/v1).Klienty OpenAI: https://api.oneprovider.dev/v1. Claude Code i SDK Anthropic: https://api.oneprovider.dev (bez /v1).
429 rate_limit_error w skokachZbyt wiele zapytań w krótkim czasie.Przestrzegaj Retry-After i ponawiaj z rosnącą przerwą. Zmniejsz liczbę równoległych zapytań.
400 „Model X is not available on this API key”Plan twojego klucza nie obejmuje tego modelu albo nazwa modelu jest nieaktualna.Wybierz model z GET /v1/models lub z tabeli na /docs/api/models.
503 „Service temporarily unavailable; retry later”Chwilowa awaria po naszej stronie. Twój klucz i zapytanie są w porządku.Ponawiaj z rosnącą przerwą: 1 s, 2 s, 4 s, do minuty.
504 „Service timed out; retry later” przy wywołaniu bez streaminguDługa generacja (duży kontekst + narzędzia) nie zaczęła odpowiadać w ciągu 6 minut albo trwała dłużej niż 10 minut.Przekaż stream:true: strumień zaczyna odpowiadać od razu. Jeśli jedna odpowiedź potrzebuje ponad 10 minut, podziel zadanie.
Wywołanie narzędzia zastąpione opisem słownym („I would have called X...”)Klient wysłał tool_choice:{any|tool} → API zamieniło to na auto + podpowiedź; model jej nie uwzględnił.Doprecyzuj prompt użytkownika („Use the X tool to do Y”) albo przełącz się na mocniejszy model.
OPENAI_API_KEY nadpisuje mój klucz OneProviderStary export w pliku rc twojej powłoki (~/.zshrc, ~/.bashrc) przesłania nową wartość.unset OPENAI_API_KEY w tej powłoce, potem grep -nE 'OPENAI_API_KEY' ~/.zshrc i usuń wpis.
Codex prosi o zalogowanie przez ChatGPT albo pisze „You've hit your usage limit”Provider oneprovider nie jest aktywny: zapytanie poszło do ChatGPT, a nie do nas.model_provider = "oneprovider" na samej górze ~/.codex/config.toml (nad każdą [table]), klucz w ONEPROVIDER_API_KEY, nowe zadanie lokalne. Zobacz /docs/clients/codex.
Cursor / Claude Code: strumieniowana odpowiedź urywa się w połowie tokenaPrawie zawsze winne jest proxy sieciowe lub VPN po stronie klienta, które buforuje fragmenty SSE.Wyłącz proxy/VPN i spróbuj ponownie. Fragmenty wysyłamy, gdy tylko są gotowe, bez buforowania.

Diagnostyka jednym poleceniem

Jeśli tabela objawów nie obejmuje twojego przypadku, zbierz te trzy dowody:

bash
# 1. Confirm reach + auth
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. Reproduce the failing call with -v (verbose headers)
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. Check your current balance (also shown in the cabinet: the @oneprovider_robot bot or app.oneprovider.dev)
curl -s https://api.oneprovider.dev/v1/dashboard/balance \
-H "Authorization: Bearer $ANTHROPIC_API_KEY"

Kiedy eskalować

Wyślij trzy powyższe wyniki + pierwsze 8 znaków klucza + znacznik czasu UTC do @Oneproviderhelpbot . To wystarczy, byśmy w kilka minut znaleźli twoje zapytanie w logach. O tym, czego nie potrzebujemy (i o co nigdy nie prosimy), przeczytasz w Uzyskaj wsparcie .

Ostatnia aktualizacja: 2026-11-08 Widzisz błąd? @Oneproviderhelpbot