Risolvere gli errori 401, 403, 429 e 5xx
Risolvi i problemi dell'API OneProvider: sintomo, causa e soluzione per 400, 401, 403, 404, 429, 503, 504, login di Claude Code, VPN e assistenza.
Dodici casi concreti di errore che vediamo ogni settimana. Sintomo → causa → correzione in una riga.
Tutti i modelli, le funzionalità e i prezzi Indice della documentazione per agenti AI:https://oneprovider.dev/docs/llms.txt Prima di iniziare Esegui curl -s https://api.oneprovider.dev/v1/models -H "x-api-key: $ANTHROPIC_API_KEY". Se restituisce un elenco JSON di modelli non vuoto, rete e autenticazione vanno bene: ciò che incontri dipende dalla singola richiesta, non dall'infrastruttura. Domande frequenti
Devo accedere a Claude Code? E il 401 e «Auth conflict»?
No. La chiave OneProvider funziona senza un account Claude. Per Claude Code imposta ANTHROPIC_BASE_URL e ANTHROPIC_AUTH_TOKEN (la chiave viene inviata come Authorization: Bearer). Questa variabile ha la precedenza su un accesso salvato e sulle altre variabili, e non mostra alcuna richiesta di conferma. Il nostro gateway accetta anche ANTHROPIC_API_KEY (header x-api-key), ma in modalità interattiva Claude Code ti chiede una volta di approvare una chiave del genere e ignora in silenzio quella rifiutata (riattivala in /config → Use custom API key).
Se vedi la schermata di accesso, 401 Invalid API key o Auth conflict, procedi passo per passo:
- Esegui
/status: dovrebbe mostrare laAnthropic base URLdi OneProvider e una rigaAuth tokenoAPI keycon il nome della tua variabile. Una rigaLogin methodcon un account claude.ai significa che la variabile non è arrivata alla sessione. Auth conflict(sia un accesso claude.ai sia una chiave): esegui/logout; le tue variabili restano.401 Invalid API key: unANTHROPIC_AUTH_TOKENestraneo (un token di un altro servizio) sovrascrive la tua chiave, oppure il valore ha una virgoletta o uno spazio di troppo. Impostalo con la chiave OneProvider completa, senza virgolette.- La schermata di accesso resta anche se le variabili sono nel
.claude/settings.jsondi un progetto: quel blocco viene letto dopo la configurazione iniziale, quindi metti le variabili nella tua shell o in~/.claude/settings.json.
# 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 Devo accedere a ChatGPT per usare Codex CLI?
No. Codex funziona con la sola chiave quando il provider oneprovider in ~/.codex/config.toml è attivo (env_key = "ONEPROVIDER_API_KEY"). Una richiesta di accesso a ChatGPT o il messaggio "You've hit your usage limit" significa che il provider non è attivo e la richiesta è andata a ChatGPT.
Controlla in quest'ordine: le righe model_provider e model sono in cima al file, sopra qualsiasi [table]; Codex è stato riavviato del tutto e l'attività è nuova; la chiave è esportata nello stesso terminale:
codex logout
export ONEPROVIDER_API_KEY="sk-..."
# quick test without editing the file:
codex -c model_provider=oneprovider La guida completa è nella pagina Codex (OpenAI) .
Mi serve una VPN? Ci sono restrizioni regionali?
Non serve nessuna VPN: OneProvider non ha restrizioni regionali. L'endpoint api.oneprovider.dev è raggiungibile da tutto il mondo e non blocca il traffico per area geografica.
Anzi, le VPN e i proxy VLESS spesso rompono la connessione all'API in due modi:
- Lo streaming SSE viene messo in buffer dentro il proxy: lo stream si interrompe a metà token.
- La negoziazione HTTP/2 + ALPN si rompe nei salti dei relay: il client vede
connection reset.
Se vedi stream interrotti, connection reset o timeout casuali, disattiva la VPN / il proxy VLESS e riprova. Noi non mettiamo in buffer gli stream dalla nostra parte.
Errore di parsing JSON nella configurazione (o un 429)
La causa più comune sono le virgolette «tipografiche» (“ ”) nella tua configurazione JSON. Compaiono quando copi da un messenger, da Notion, da Google Docs o da un browser che sostituisce le virgolette ASCII con quelle tipografiche. I parser JSON accettano solo le semplici virgolette ASCII ".
A volte una configurazione rotta non si manifesta come «JSON parse error» ma come 429: il client scambia la risposta mancante per un limite di frequenza. Stessa soluzione:
- Sostituisci a mano ogni
“”con". - Copia le configurazioni direttamente da questa documentazione: qui le virgolette sono già corrette.
- Verifica con
cat -v config.jsonojq . config.json: entrambi segnalano il byte errato.
# 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 Matrice dei sintomi
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| 401 authentication_error a ogni richiesta | La chiave non è impostata, è malformata oppure ha un a capo o una virgoletta di troppo da un copia e incolla. | echo "${ANTHROPIC_API_KEY:?missing}" | wc -c # deve dare 68 (sk- + 64 hex + a capo) |
| 429 'Insufficient balance on this API key' | La chiave non ha più saldo. Riprovare non serve: la risposta ha x-should-retry: false. | curl -sH "Authorization: Bearer $ANTHROPIC_API_KEY" https://api.oneprovider.dev/v1/dashboard/balance # poi ricarica la tua area personale (bot o app.oneprovider.dev) |
| 403 permission_error 'API key expired' | La chiave ha superato la data di scadenza. | Rinnova la chiave oppure emettine una nuova nella tua area personale (pagina «Chiavi»). |
| 404 'The requested API endpoint does not exist' | La base URL è sbagliata: /v1 manca o è doppio (/v1/v1). | Client OpenAI: https://api.oneprovider.dev/v1. Claude Code e SDK Anthropic: https://api.oneprovider.dev (senza /v1). |
| 429 rate_limit_error nei picchi di traffico | Troppe richieste in poco tempo. | Rispetta Retry-After e riprova con una pausa crescente. Riduci le richieste in parallelo. |
| 400 'Model X is not available on this API key' | Il piano della tua chiave non include questo modello, oppure il nome del modello è obsoleto. | Scegli un modello da GET /v1/models o dalla tabella su /docs/api/models. |
| 503 'Temporary provider issue on our side, retry in a minute' | Un errore temporaneo da parte nostra. La tua chiave e la tua richiesta vanno bene. | Riprova con una pausa crescente: 1 s, 2 s, 4 s, fino a un minuto. |
| 504 'Service timed out; retry later' su una chiamata senza streaming | Una generazione lunga (contesto ampio + strumenti) non ha iniziato a rispondere entro 6 minuti, oppure ha superato i 10 minuti. | Passa stream:true: uno stream inizia a rispondere subito. Se una risposta richiede più di 10 minuti, dividi il compito. |
| La chiamata a uno strumento è sostituita da testo ('Avrei chiamato X...') | Il client ha inviato tool_choice:{any|tool} → l'API l'ha riscritto in auto + suggerimento; il modello non ha seguito il suggerimento. | Rendi più preciso il prompt dell'utente ("Usa lo strumento X per fare Y"), oppure passa a un modello più forte. |
| OPENAI_API_KEY sovrascrive la mia chiave OneProvider | Un vecchio export nell'rc della tua shell (~/.zshrc, ~/.bashrc) oscura il nuovo valore. | Esegui unset OPENAI_API_KEY in questa shell, poi grep -nE 'OPENAI_API_KEY' ~/.zshrc e ripulisci. |
| Codex chiede di accedere con ChatGPT o dice 'You've hit your usage limit' | Il provider oneprovider non è attivo: la richiesta è andata a ChatGPT, non a noi. | model_provider = "oneprovider" in cima al file ~/.codex/config.toml (sopra qualsiasi [table]), la chiave in ONEPROVIDER_API_KEY, una nuova attività locale. Vedi /docs/clients/codex. |
| Cursor / Claude Code: la risposta in streaming si interrompe a metà token | Quasi sempre è un proxy di rete o una VPN lato client che mette in buffer i chunk SSE. | Disattiva il proxy/VPN e riprova. Noi inviamo i chunk appena sono pronti, senza buffer. |
Comandi diagnostici in una riga
Se la matrice dei sintomi non copre il tuo caso, raccogli questi tre elementi:
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" Quando rivolgersi a noi
Invia i tre output qui sopra + i primi 8 caratteri della tua chiave + un timestamp UTC a @Oneproviderhelpbot . Ci basta per trovare la tua richiesta nei nostri log in pochi minuti. In Assistenza trovi cosa non ci serve (e non chiediamo mai).
Ultimo aggiornamento: 2026-11-08 Hai trovato un errore? @Oneproviderhelpbot