OneProvider

Corriger les erreurs 401, 403, 429 et 5xx

Réglez vite les problèmes de l’API OneProvider : symptôme, cause et solution pour 400, 401, 403, 404, 429, 503 et 504, connexion Claude Code, VPN, support.

Douze cas concrets de panne que nous voyons semaine après semaine. Symptôme → cause → correction en une ligne.

Tous les modèles, leurs capacités et leurs tarifs Index de la documentation pour les agents IA : https://oneprovider.dev/docs/llms.txt Avant de commencer Exécutez curl -s https://api.oneprovider.dev/v1/models -H "x-api-key: $ANTHROPIC_API_KEY". S’il renvoie une liste JSON de modèles non vide, votre accès réseau et l’authentification sont corrects — ce que vous rencontrez est propre à la requête, pas à l’infrastructure.

Questions fréquentes

Dois-je me connecter à Claude Code ? Que faire en cas de 401 et de « Auth conflict »

Non. La clé OneProvider fonctionne sans compte Claude. Pour Claude Code, définissez ANTHROPIC_BASE_URL et ANTHROPIC_AUTH_TOKEN (la clé est envoyée en Authorization: Bearer). Cette variable est prioritaire sur une connexion enregistrée et sur les autres variables, et ne demande aucune confirmation. Notre passerelle accepte aussi ANTHROPIC_API_KEY (en-tête x-api-key), mais en mode interactif Claude Code vous demande une fois d’approuver une telle clé et ignore silencieusement une clé refusée (réactivez-la dans /config → Use custom API key).

Si vous voyez l’écran de connexion, 401 Invalid API key ou Auth conflict, procédez par étapes :

  1. Lancez /status : il doit afficher la Anthropic base URL d’OneProvider et une ligne Auth token ou API key qui nomme votre variable. Une ligne Login method avec un compte claude.ai signifie que la variable n’est pas arrivée jusqu’à la session.
  2. Auth conflict (à la fois une connexion claude.ai et une clé) : lancez /logout ; vos variables sont conservées.
  3. 401 Invalid API key : un ANTHROPIC_AUTH_TOKEN étranger (un jeton d’un autre service) remplace votre clé, ou la valeur contient un guillemet ou une espace en trop. Définissez-la avec la clé OneProvider complète, sans guillemets.
  4. L’écran de connexion persiste alors que les variables sont dans le .claude/settings.json d’un projet : ce bloc est lu après la configuration du premier lancement, donc placez les variables dans votre shell ou dans ~/.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

Dois-je me connecter à ChatGPT pour Codex CLI ?

Non. Codex fonctionne avec la clé seule quand le fournisseur oneprovider de ~/.codex/config.toml est actif (env_key = "ONEPROVIDER_API_KEY"). Une invite de connexion à ChatGPT ou « You've hit your usage limit » signifie que le fournisseur n’est pas actif et que la requête est partie vers ChatGPT.

Vérifiez dans cet ordre : les lignes model_provider et model sont tout en haut du fichier, au-dessus de toute [table] ; Codex est entièrement redémarré et la tâche est nouvelle ; la clé est exportée dans le même terminal :

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

Pas-à-pas complet sur la page Codex (OpenAI) .

Ai-je besoin d’un VPN ? Y a-t-il des restrictions régionales ?

Aucun VPN n’est nécessaire — OneProvider n’a aucune restriction régionale. L’endpoint api.oneprovider.dev est accessible dans le monde entier et ne bloque pas le trafic par zone géographique.

Pire : les VPN / proxys VLESS cassent souvent la connexion à l’API, de deux façons :

  • Le streaming SSE est mis en tampon dans le proxy — le flux est coupé en plein jeton.
  • La négociation HTTP/2 + ALPN échoue aux relais — le client voit connection reset.

Si vous voyez des flux coupés, des connection reset ou des timeouts aléatoires, désactivez le VPN / proxy VLESS et réessayez. Nous ne mettons pas les flux en tampon de notre côté.

Erreur d’analyse JSON dans la config (ou un 429)

La cause la plus fréquente : les guillemets typographiques (“ ”) dans votre config JSON. Ils apparaissent quand vous copiez depuis une messagerie, Notion, Google Docs ou un navigateur qui remplace les guillemets ASCII par des guillemets typographiques. Les analyseurs JSON n’acceptent que le " ASCII simple.

Parfois, une config cassée ne se manifeste pas par « JSON parse error » mais par un 429 : le client interprète l’absence de réponse comme une limite de débit. Même correction :

  • Remplacez à la main chaque “ ” par ".
  • Copiez les configs directement depuis cette documentation — les guillemets y sont déjà corrects.
  • Validez avec cat -v config.json ou jq . config.json — les deux signalent l’octet fautif.
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

Matrice des symptômes

Données de référence
SymptômeCause probableSolution
401 authentication_error sur chaque requêteLa clé n’est pas définie, est mal formée, ou contient un saut de ligne ou un guillemet en trop issu d’un copier-coller.echo "${ANTHROPIC_API_KEY:?missing}" | wc -c # attendu : 68 (sk- + 64 hex + saut de ligne)
429 « Insufficient balance on this API key »Le solde de l’espace client est épuisé ou la limite de dépense de la clé est atteinte. Réessayer ne servira à rien : la réponse contient x-should-retry: false.curl -sH "Authorization: Bearer $ANTHROPIC_API_KEY" https://api.oneprovider.dev/v1/dashboard/balance # puis rechargez votre espace client (bot ou app.oneprovider.dev)
403 permission_error « API key expired »La clé a dépassé sa date d’expiration.Renouvelez la clé ou créez-en une nouvelle dans votre espace client (page « Clés »).
404 « The requested API endpoint does not exist »Mauvaise base URL : /v1 est absent ou en double (/v1/v1).Clients OpenAI : https://api.oneprovider.dev/v1. Claude Code et SDK Anthropic : https://api.oneprovider.dev (sans /v1).
429 rate_limit_error lors des picsTrop de requêtes en peu de temps.Respectez Retry-After et réessayez avec une pause croissante. Réduisez le nombre de requêtes parallèles.
400 « Model X is not available on this API key »Le forfait de votre clé n’inclut pas ce modèle, ou le nom du modèle est obsolète.Choisissez un modèle dans GET /v1/models ou dans le tableau de /docs/api/models.
503 « Temporary provider issue on our side, retry in a minute »Panne temporaire de notre côté. Votre clé et votre requête sont correctes.Réessayez avec une pause croissante : 1 s, 2 s, 4 s, jusqu’à une minute.
504 « Service timed out; retry later » sur un appel sans streamingUne longue génération (grand contexte + outils) n’a pas commencé à répondre dans les 6 minutes, ou a dépassé 10 minutes.Passez stream:true : un flux commence à répondre tout de suite. Si une réponse demande plus de 10 minutes, découpez la tâche.
Appel d’outil remplacé par de la prose (« J’aurais appelé X... »)Le client a envoyé tool_choice:{any|tool} → l’API l’a réécrit en auto + consigne ; le modèle n’a pas suivi la consigne.Précisez le prompt utilisateur (« Utilisez l’outil X pour faire Y ») ou passez à un modèle plus puissant.
OPENAI_API_KEY remplace ma clé OneProviderUn ancien export dans le rc de votre shell (~/.zshrc, ~/.bashrc) masque la nouvelle valeur.unset OPENAI_API_KEY dans ce shell, puis grep -nE 'OPENAI_API_KEY' ~/.zshrc et faites le ménage.
Codex demande de se connecter avec ChatGPT ou affiche « You've hit your usage limit »Le fournisseur oneprovider n’est pas actif : la requête est partie vers ChatGPT, pas chez nous.model_provider = "oneprovider" tout en haut de ~/.codex/config.toml (au-dessus de toute [table]), la clé dans ONEPROVIDER_API_KEY, une nouvelle tâche locale. Voir /docs/clients/codex.
Cursor / Claude Code : la réponse en streaming est coupée en plein jetonPresque toujours un proxy réseau ou un VPN côté client qui met en tampon les chunks SSE.Désactivez le proxy/VPN et réessayez. Nous envoyons les chunks dès qu’ils sont prêts, sans mise en tampon.

Commandes de diagnostic en une ligne

Si la matrice des symptômes ne couvre pas votre cas, recueillez ces trois éléments :

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"

Quand escalader

Envoyez les trois sorties ci-dessus + les 8 premiers caractères de votre clé + un horodatage UTC à @Oneproviderhelpbot . Cela nous suffit pour retrouver votre requête dans nos logs en quelques minutes. Voir Obtenir de l’aide pour ce dont nous n’avons pas besoin (et que nous ne demandons jamais).

Dernière mise à jour: 2026-11-08 Vous avez trouvé un bug ? @Oneproviderhelpbot