OneProvider

Solución de errores 401, 403, 429 y 5xx

Resuelve rápido los problemas de la API de OneProvider: síntoma, causa y solución para 400, 401, 403, 404, 429, 503 y 504, login de Claude Code y VPN.

Doce fallos concretos que vemos semana tras semana. Síntoma → causa → arreglo en una línea.

Todos los modelos, capacidades y precios Índice de la documentación para agentes de IA: https://oneprovider.dev/docs/llms.txt Antes de empezar Ejecuta curl -s https://api.oneprovider.dev/v1/models -H "x-api-key: $ANTHROPIC_API_KEY". Si devuelve una lista de modelos en JSON que no esté vacía, tu red y la autenticación están bien: lo que estás viendo es específico de la solicitud, no de la infraestructura.

Preguntas principales

¿Necesito iniciar sesión en Claude Code? ¿Qué hacer con 401 y “Auth conflict”?

No. La clave de OneProvider funciona sin una cuenta de Claude. Para Claude Code define ANTHROPIC_BASE_URL y ANTHROPIC_AUTH_TOKEN (la clave se envía como Authorization: Bearer). Esta variable tiene prioridad sobre una sesión guardada y sobre las demás variables, y no pide aprobación. Nuestro gateway también acepta ANTHROPIC_API_KEY (encabezado x-api-key), pero en modo interactivo Claude Code te pide una vez que apruebes esa clave y ignora en silencio una que rechazaste (vuelve a activarla en /config → Use custom API key).

Si ves la pantalla de inicio de sesión, 401 Invalid API key o Auth conflict, ve paso a paso:

  1. Ejecuta /status: debe mostrar la Anthropic base URL de OneProvider y una línea Auth token o API key con el nombre de tu variable. Una línea Login method con una cuenta de claude.ai significa que la variable no llegó a la sesión.
  2. Auth conflict (hay a la vez una sesión de claude.ai y una clave): ejecuta /logout; tus variables se conservan.
  3. 401 Invalid API key: un ANTHROPIC_AUTH_TOKEN ajeno (un token de otro servicio) anula tu clave, o el valor trae una comilla o un espacio de más. Ponle la clave completa de OneProvider, sin comillas.
  4. La pantalla de inicio de sesión sigue aunque las variables estén en el .claude/settings.json de un proyecto: ese bloque se lee después de la configuración inicial, así que pon las variables en tu shell o en ~/.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

¿Necesito iniciar sesión en ChatGPT para usar Codex CLI?

No. Codex funciona solo con la clave cuando el proveedor oneprovider de ~/.codex/config.toml está activo (env_key = "ONEPROVIDER_API_KEY"). Si aparece la petición de iniciar sesión en ChatGPT o “You've hit your usage limit”, el proveedor no está activo y la solicitud fue a ChatGPT.

Revisa en este orden: las líneas model_provider y model están justo al principio del archivo, encima de cualquier [table]; Codex está completamente reiniciado y la tarea es nueva; la clave está exportada en la misma terminal:

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

Guía completa en la página de Codex (OpenAI) .

¿Necesito una VPN? ¿Hay restricciones regionales?

No hace falta VPN: OneProvider no tiene restricciones regionales. El endpoint api.oneprovider.dev es accesible desde todo el mundo y no bloquea el tráfico por geolocalización.

Peor aún, las VPN y los proxies VLESS suelen romper la conexión con la API de dos maneras:

  • El streaming SSE se almacena en búfer dentro del proxy y el stream se corta a mitad de un token.
  • La negociación HTTP/2 + ALPN falla en los saltos del relay: el cliente ve connection reset.

Si ves streams cortados, connection reset o timeouts aleatorios, desactiva la VPN o el proxy VLESS y reintenta. De nuestro lado no almacenamos los streams en búfer.

Error de análisis JSON en la configuración (o un 429)

La causa más común son las comillas “inteligentes” (“ ”) en tu configuración JSON. Aparecen al copiar desde un mensajero, Notion, Google Docs o un navegador que cambia las comillas ASCII por tipográficas. Los analizadores JSON solo aceptan la comilla recta ASCII ".

A veces una configuración rota no se muestra como “JSON parse error” sino como un 429: el cliente interpreta la falta de respuesta como un límite de frecuencia. La solución es la misma:

  • Reemplaza a mano cada “ ” por ".
  • Copia las configuraciones directamente de esta documentación: aquí las comillas ya son correctas.
  • Valida con cat -v config.json o jq . config.json: ambos señalan el byte incorrecto.
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

Matriz de síntomas

Datos de referencia
SíntomaCausa probableSolución
401 authentication_error en cada solicitudLa clave no está definida, está mal formada o trae un salto de línea o una comilla de más por copiar y pegar.echo "${ANTHROPIC_API_KEY:?missing}" | wc -c # debe dar 68 (sk- + 64 hex + salto de línea)
429 'Insufficient balance on this API key'La clave se quedó sin saldo. Reintentar no ayuda: la respuesta trae x-should-retry: false.curl -sH "Authorization: Bearer $ANTHROPIC_API_KEY" https://api.oneprovider.dev/v1/dashboard/balance # luego recarga tu panel (bot o app.oneprovider.dev)
403 permission_error 'API key expired'La clave pasó su fecha de vencimiento.Renueva la clave o emite una nueva en tu panel (página Claves).
404 'The requested API endpoint does not exist'La base URL es incorrecta: falta /v1 o está duplicado (/v1/v1).Clientes de OpenAI: https://api.oneprovider.dev/v1. Claude Code y los SDK de Anthropic: https://api.oneprovider.dev (sin /v1).
429 rate_limit_error en picosDemasiadas solicitudes en poco tiempo.Respeta Retry-After y reintenta con una pausa creciente. Reduce las solicitudes en paralelo.
400 'Model X is not available on this API key'El plan de tu clave no incluye este modelo, o el nombre del modelo está desactualizado.Elige un modelo de GET /v1/models o de la tabla en /docs/api/models.
503 'Temporary provider issue on our side, retry in a minute'Un fallo temporal por nuestra parte. Tu clave y tu solicitud están bien.Reintenta con una pausa creciente: 1 s, 2 s, 4 s, hasta un minuto.
504 'Service timed out; retry later' en una llamada sin streamingUna generación larga (contexto grande + herramientas) no empezó a responder en un máximo de 6 minutos, o superó los 10 minutos.Pasa stream:true: un stream empieza a responder de inmediato. Si una respuesta necesita más de 10 minutos, divide la tarea.
La llamada a una herramienta se sustituye por texto ('I would have called X...')El cliente envió tool_choice:{any|tool} → la API lo reescribió a auto + indicación; el modelo no siguió la indicación.Afina el prompt de usuario (“Use the X tool to do Y”) o cambia a un modelo más potente.
OPENAI_API_KEY anula mi clave de OneProviderUn export antiguo en el rc de tu shell (~/.zshrc, ~/.bashrc) oculta el valor nuevo.Ejecuta unset OPENAI_API_KEY en este shell, luego grep -nE 'OPENAI_API_KEY' ~/.zshrc y límpialo.
Codex pide iniciar sesión con ChatGPT o dice 'You've hit your usage limit'El proveedor oneprovider no está activo: la solicitud fue a ChatGPT, no a nosotros.model_provider = "oneprovider" justo al principio de ~/.codex/config.toml (encima de cualquier [table]), la clave en ONEPROVIDER_API_KEY y una tarea local nueva. Consulta /docs/clients/codex.
Cursor / Claude Code: la respuesta en streaming se corta a mitad de un tokenCasi siempre es un proxy de red o una VPN del lado del cliente que almacena en búfer los fragmentos SSE.Desactiva el proxy o la VPN y reintenta. Enviamos los fragmentos en cuanto están listos, sin búfer.

Comandos de diagnóstico en una línea

Si la matriz de síntomas no cubrió tu caso, reúne estas tres pruebas:

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"

Cuándo escalar

Envía las tres salidas de arriba + los primeros 8 caracteres de tu clave + una marca de tiempo UTC a @Oneproviderhelpbot . Con eso encontramos tu solicitud en nuestros registros en minutos. Consulta Obtener soporte para saber qué no necesitamos (y nunca pedimos).

Última actualización: 2026-11-08 ¿Encontraste un error? @Oneproviderhelpbot