# Claude Code 403, 503 y 529: quién da el error y cómo arreglarlo

> El mismo código puede venir de tu proxy, tu cuenta, Anthropic o un intermediario; el texto del error y la línea base URL de /status dicen a quién le toca.

- URL: https://blog.laozhang.ai/es/posts/claude-code-403-503-529-errors
- Published: 2026-09-29
- Updated: 2026-09-29
- Author: LaoZhang AI Team (https://blog.laozhang.ai/es/about)
- Category: Claude Code
- Tags: Claude Code, Error 403, Error 503, Error 529, Proxy, Gateway, Solución de problemas

---
Un `403`, un `503` o un `529` en Claude Code no dicen por sí solos quién ha rechazado tu petición. Entre tu terminal y el modelo puede haber un proxy de empresa, una pasarela (gateway) de tu organización o un servicio intermediario, y todos usan los mismos códigos HTTP. Dos datos lo aclaran casi siempre: **el texto exacto que sigue al código** y **si `/status` muestra la línea `Anthropic base URL`**. Sin esa línea hablas directamente con Anthropic (o con Bedrock, Vertex o Foundry si los has configurado), así que el fallo está en tu red, en tu cuenta o en la capacidad de Anthropic. Con esa línea, cada error pasa antes por esa dirección, y lo primero es preguntar a quien la gestiona.

En la práctica:

- **403** casi nunca significa que te hayan bloqueado para siempre. Lo habitual es una suscripción inactiva o un rol sin acceso a Claude Code, un proxy o cortafuegos que corta la conexión, un cortafuegos de aplicaciones web (WAF) delante de la pasarela, o la web que Claude intentaba leer.
- **503** con un texto como `No available accounts`, `No available channel` o `no available server` lo genera un intermediario o un balanceador de carga. La API de Anthropic señala la sobrecarga con un 529; el 503 no figura en su lista de errores.
- **529** es falta de capacidad de Anthropic en ese modelo, no tu cuota. Cambia de modelo con `/model` o espera unos minutos.

## Primero: averigua quién te ha respondido

Ejecuta `/status` dentro de Claude Code. Se abre en la pestaña **Status** y ahí busca dos líneas, según la [guía oficial de conexión a pasarelas](https://code.claude.com/docs/en/llm-gateway-connect):

- `Anthropic base URL`: solo aparece cuando hay una dirección de pasarela configurada con `ANTHROPIC_BASE_URL`. Si está, todas tus peticiones van a ese host.
- `Auth token` o `API key`: indica qué variable de credencial se está usando. Si en su lugar ves `Login method` con una cuenta de claude.ai, estás usando tu sesión de Claude.

Un detalle importante: si defines la misma variable en la terminal y en el bloque `env` de un archivo de ajustes, gana el valor del archivo. Un `ANTHROPIC_BASE_URL` olvidado en `~/.claude/settings.json` sigue mandando tus peticiones a un intermediario aunque ya no lo tengas en la terminal. Compruébalo así:

```bash
echo $ANTHROPIC_BASE_URL
grep -n "ANTHROPIC_BASE_URL" ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null
```

La segunda pista está al final del propio mensaje. En las versiones actuales, para cualquier error 5xx Claude Code añade una frase que dice dónde mirar el estado del servicio: `status.claude.com` si vas directo a Anthropic, la página de estado del proveedor si usas Bedrock, Google Cloud o Foundry, y **el host de tu pasarela** si tienes una `ANTHROPIC_BASE_URL` propia ([referencia de errores de Claude Code](https://code.claude.com/docs/en/errors#api-error-500-internal-server-error)). Además, desde la versión 2.1.281, cuando un proxy, un balanceador o una pasarela responde con una página de error HTML, el mensaje muestra el código y el título de esa página, por ejemplo `API Error: 502 Bad Gateway` o `API Error: 403 Forbidden`. Un JSON con `"type":"forbidden"` viene de una API; un título HTML suelto viene de algo que hay en medio.

No te fíes de la frase final en versiones antiguas: con la 2.1.137 se veían 503 de intermediarios que terminaban en «check status.claude.com» ([issue #57554](https://github.com/anthropics/claude-code/issues/57554)). Consulta tu versión con `claude --version` y actualiza antes de sacar conclusiones.

![Árbol de decisión: si /status muestra Anthropic base URL, pregunta a quien gestiona la pasarela; si no, el texto del error señala el proxy, la suscripción, la capacidad de Anthropic o la web de destino](https://blog.laozhang.ai/posts/es/claude-code-403-503-529-errors/img/status-decision-tree.webp)

## Del texto del error a la capa responsable

| Lo que ves | Quién responde | Primer paso |
|---|---|---|
| `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}` después de iniciar sesión | Anthropic, por tu suscripción o tu rol | Revisa la suscripción en claude.ai/settings o tu rol en Console |
| `Claude Code access has not been granted for this account` | Tu organización en Claude Enterprise | Pide a un Owner un rol con acceso a Claude Code |
| `API Error: 403 Forbidden` (título HTML, sin JSON) | Proxy corporativo, cortafuegos o WAF delante de la pasarela | Prueba la conexión fuera del proxy y habla con TI o con quien gestiona la pasarela |
| `Gateway refused the request · signing in again won't change this` | La pasarela de apps de Claude de tu empresa | Escribe al administrador de la pasarela; volver a iniciar sesión no sirve |
| `403` con `This service is restricted to the official Claude Code client` | El servicio intermediario que usas | Pregunta a su operador; no lo documenta Anthropic |
| `App unavailable in region` o `curl: (22) ... error: 403` al instalar | Región no soportada o red que bloquea la descarga | Comprueba tu país en la lista oficial y tu red |
| 403 al pedirle a Claude que lea una URL | La web de destino o su CDN | Tu acceso a Claude está bien; consigue el contenido de otra forma |
| `503 No available accounts` | Intermediario con un conjunto de cuentas (por ejemplo, sub2api) | Espera un poco o avisa al operador |
| `503 No available channel for model ... under group ...` | Intermediario tipo new-api sin canal para ese modelo | Prueba otro modelo o pide al operador que lo active en tu grupo |
| `503` con `No available provider found` | Claude Code Hub u otro proxy de proveedores | El administrador revisa proveedores y cortacircuitos |
| `503 no available server` | Balanceador (Traefik) sin ningún servidor sano detrás | Avisa a quien gestiona la URL a la que llamas |
| `503 no healthy upstream` | Proxy de borde sin origen disponible | Sin base URL y con incidencia abierta: espera |
| `API Error: Repeated 529 Overloaded errors` | Capacidad de Anthropic (o del proveedor nombrado) | `/model` para cambiar de modelo, o espera |

Si tu error no está en la tabla, aplica la misma lógica: texto en formato JSON de la API de Anthropic y sin línea de base URL apuntan a Anthropic; cualquier otra redacción, sobre todo si `/status` muestra una base URL, apunta a lo que hay en medio.

## Error 403: cuenta, red, pasarela, región o la web

### 403 «Request not allowed» justo después de iniciar sesión

Es el 403 que aparece cuando usas tu cuenta de Claude o de Console sin intermediarios. La [guía oficial de instalación y autenticación](https://code.claude.com/docs/en/troubleshoot-install#403-forbidden-after-login) lo reduce a tres comprobaciones:

1. **Pro o Max**: confirma que la suscripción está activa en [claude.ai/settings](https://claude.ai/settings).
2. **Cuenta de Anthropic Console**: tu usuario necesita el rol «Claude Code» o «Developer». Lo asigna un administrador en Console, en Settings → Members.
3. **Detrás de un proxy**: un proxy corporativo puede alterar las peticiones a la API. Pasa a la sección de red más abajo.

Si usas una clave de API de Console, el 403 de la API se llama `permission_error` y significa que esa clave no tiene permiso sobre el recurso pedido; la [lista de errores de la API](https://platform.claude.com/docs/en/api/errors) remite a revisar el acceso de la organización y la configuración del workspace. En la práctica, pide al administrador que confirme que tu workspace tiene acceso al modelo que usas.

Si el 403 aparece en la propia página de inicio de sesión con `Claude Code access has not been granted for this account. Contact your administrator.`, tu organización de Claude Enterprise te ha puesto un rol personalizado que no incluye Claude Code. Nada de lo que cambies en tu equipo lo resuelve: un Owner tiene que asignarte un rol que lo incluya (o pasarte a un rol estándar), y después vuelves a iniciar sesión con `claude`.

Para renovar la sesión basta con `/logout` y `/login`. No borres `~/.claude` entero como sugieren algunas guías: ahí están tus ajustes, tu historial y tus credenciales, y eliminarlo no cambia ni tu suscripción, ni tu rol, ni tu proxy, ni tu región.

### 403 por proxy corporativo, cortafuegos o VPN

Cuando el bloqueo está en la red, la forma más rápida de verlo es pedir la cabecera del host de descargas desde la misma terminal:

```bash
curl -sI https://downloads.claude.ai/claude-code-releases/latest
# En Windows PowerShell:
curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest
```

Una primera línea con `200` significa que llegas. Un `403` suele ser un proxy o filtro de red que bloquea el host, o que Claude Code no está disponible en tu región; un `5xx` es un problema temporal del servicio. Para la API, `curl -I https://api.anthropic.com` comprueba que el host responde desde esa misma terminal.

Si en tu empresa hay proxy, Claude Code tiene que saberlo antes de arrancar. Lee `https_proxy`, `HTTPS_PROXY`, `http_proxy` y `HTTP_PROXY` (usa la primera que encuentre, en ese orden) y respeta `NO_PROXY` ([configuración de red](https://code.claude.com/docs/en/network-config)). Si el proxy pide usuario y contraseña, van en la propia URL: `http://usuario:contraseña@proxy.empresa.example:8080`. Ten en cuenta que Claude Code no admite proxies SOCKS.

La trampa típica está en la extensión de VS Code. La terminal tiene el proxy configurado, `claude` funciona desde ella, pero la extensión da 403 o no conecta. La [documentación de la extensión](https://code.claude.com/docs/en/vs-code) lo explica: VS Code puede no heredar el entorno de tu shell. Hay tres soluciones, de más rápida a más duradera:

- Abre VS Code desde la terminal con `code .` para que herede las variables.
- Define las variables en el ajuste `environmentVariables` de la extensión.
- Ponlas en el bloque `env` de `~/.claude/settings.json`, que comparten la extensión y la CLI:

```json
{
  "env": {
    "HTTPS_PROXY": "http://proxy.empresa.example:8080",
    "NO_PROXY": ".intranet.empresa.example"
  }
}
```

Si el fallo en VS Code no es un 403 sino que la extensión no carga o no inicia sesión, sigue [Claude Code no funciona en VS Code: primero identifica la superficie que falla](https://blog.laozhang.ai/es/posts/claude-not-working-in-vscode). Si lo que ves son `ECONNREFUSED` o `ECONNRESET`, el caso está en [Claude Code Unable to connect to API: solución para ECONNREFUSED, ECONNRESET y proxy](https://blog.laozhang.ai/es/posts/claude-api-error-connection-error).

### 403 Forbidden detrás de la pasarela de tu organización

Si `/status` muestra una base URL de tu empresa y recibes `403` con una página HTML tipo `403 Forbidden`, mientras que los registros de la pasarela no muestran ninguna petición, el culpable es un WAF o un proxy inverso que hay delante. Las peticiones de Claude Code llevan etiquetas de estilo XML y código fuente, y eso encaja con las reglas contra cross-site scripting que inspeccionan el cuerpo de la petición. Por eso una prueba corta con `curl` pasa y una sesión real falla.

La solución la aplica quien administra la pasarela: excluir la ruta `/v1/messages` de la inspección del cuerpo. En AWS WAF es la regla administrada `CrossSiteScripting_Body`; en nginx con ModSecurity, las reglas equivalentes del OWASP CRS ([resolución de errores de pasarela](https://code.claude.com/docs/en/llm-gateway-connect#troubleshoot-gateway-errors)).

Si en lugar de eso ves `Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...`, estás en una pasarela de apps de Claude y la negativa viene de la pasarela o del servicio que tiene detrás. El propio mensaje lo dice: volver a iniciar sesión no sirve. Pasa al administrador el texto que sigue a `API Error:`; su registro de auditoría guarda el motivo.

Un tercer caso aparece con algunos servicios intermediarios: `403` con `This service is restricted to the official Claude Code client`. Anthropic no documenta ese mensaje; es una comprobación del propio intermediario sobre el cliente que llama, así que la respuesta la tiene su operador.

### «App unavailable in region»: cuando el 403 es la región

Si al instalar ves una página con `App unavailable in region`, o un `403` sin más al descargar el instalador y ya has descartado el proxy, Claude Code no está disponible en tu país. España figura en la [lista de países soportados por Anthropic](https://www.anthropic.com/supported-countries) a 29 de septiembre de 2026; China, Rusia, Hong Kong y Macao no. Si te conectas desde otro país, compruébalo en esa lista: no depende del idioma que hables.

En un país no soportado, ningún ajuste local arregla el acceso directo a Anthropic, y forzarlo con redes que ocultan tu ubicación pone en riesgo la cuenta. Tampoco lo resuelve reinstalar ni borrar la configuración.

### 403 al pedirle a Claude que lea una página web

Si el error aparece cuando Claude intenta leer una URL (la herramienta WebFetch devuelve algo como «can't fetch URL - 403»), quien te rechaza es la web o su CDN, por ejemplo la protección contra bots de Cloudflare. No tiene nada que ver con tu acceso a Claude. Pega tú el contenido relevante, descarga el archivo y dáselo a Claude, o usa una fuente con API.

## Error 503: casi siempre lo emite algo que hay en medio

La API Messages de Anthropic documenta estos códigos: 400, 401, 402, 403, 404, 409, 413, 429, 500, 504 y 529 ([errores de la API](https://platform.claude.com/docs/en/api/errors)). El 503 no está, y la sobrecarga tiene su propio código, el 529. Que no figure en la lista no demuestra que el borde de Anthropic nunca pueda devolver un 503, pero cuando tu 503 lleva un texto concreto, ese texto suele delatar al intermediario o al balanceador que lo ha generado.

![Mapa por capas: proxy o WAF con 403 Forbidden, intermediario con No available accounts o channel, balanceador con no available server y Anthropic con 529 Overloaded, junto a quién resuelve cada caso](https://blog.laozhang.ai/posts/es/claude-code-403-503-529-errors/img/error-layer-map.webp)

### `503 No available accounts`

```text
API Error: 503 No available accounts: no available accounts. This is a server-side issue, usually temporary — try again in a moment. If it persists, check status.claude.com.
```

Este mensaje procede de intermediarios que reparten tus peticiones entre un conjunto de cuentas. En [sub2api](https://github.com/Wei-Shaw/sub2api/blob/main/backend/internal/handler/no_account_error.go), un intermediario de código abierto de este tipo, significa que las cuentas capaces de servir ese modelo están agotadas de forma temporal (límite de uso, pausa por cuota, bloqueo) **o que tu grupo no tiene ninguna cuenta**. Si el grupo tiene cuentas pero ninguna está configurada para el modelo pedido, sub2api devuelve otro error: `404 model_not_found`.

Qué hacer: espera unos minutos y reintenta una vez; si persiste, prueba otro modelo con `/model` y escribe al operador del servicio. Anthropic no puede ayudarte aquí: su página de estado puede estar en verde mientras el conjunto de cuentas del intermediario está vacío.

### `503 No available channel for model ... under group ...`

Un caso real, con un intermediario basado en new-api:

```text
API Error: 503 No available channel for model claude-opus-5 under group default (distributor) (request id: ...). This is a server-side issue, usually temporary — try again in a moment. If it persists, check your inference gateway (api.sooloa.com).
```

Aquí el mensaje lo dice todo: en tu grupo de usuario no hay ningún canal configurado para ese modelo ([issue #6915 de new-api](https://github.com/QuantumNous/new-api/issues/6915)). Fíjate en que la frase final ya nombra el host de la pasarela, no status.claude.com. No es temporal en el sentido habitual: seguirá fallando hasta que el operador active el modelo en tu grupo o tú elijas uno que tenga canal. Los propios desarrolladores de new-api piden que los problemas de instancias alojadas por terceros se lleven a su operador.

### `503` con `No available provider found`

Es el mensaje de Claude Code Hub cuando no puede enrutar la petición: todos los proveedores están desactivados, todos los cortacircuitos (circuit breakers) están abiertos, las restricciones de grupo impiden encontrar uno o se ha alcanzado el límite de concurrencia ([solución de problemas de Claude Code Hub](https://claude-code-hub.app/docs/troubleshooting)). Lo arregla el administrador en su panel, en la gestión de proveedores.

### `503 no available server`

Es el texto literal que devuelve el balanceador de carga de Traefik cuando no tiene ningún servidor sano al que enviar la petición ([código fuente de Traefik](https://github.com/traefik/traefik/blob/master/pkg/server/service/loadbalancer/wrr/wrr.go)). Si lo ves en Claude Code, lo más probable es que el servicio que hay detrás de la URL a la que llamas (normalmente un intermediario o una pasarela propia) esté caído o reiniciándose. Es una deducción a partir de ese código, porque Anthropic no documenta que use Traefik. Si `/status` muestra una base URL, escribe a quien la gestiona; si la pasarela es tuya, revisa los contenedores o servicios que tiene detrás.

### `503 no healthy upstream`

Es el texto estándar del proxy Envoy cuando no le queda ningún origen disponible, y varios usuarios de Claude Code lo han visto durante incidencias del servicio. Tómalo como un problema del lado de Anthropic solo si `/status` no muestra base URL y [status.claude.com](https://status.claude.com) tiene una incidencia abierta; en ese caso, espera. Si hay base URL, vuelve a la regla general: pregunta primero a quien la gestiona.

### Comprueba la pasarela o el intermediario sin Claude Code

La [guía de pasarelas](https://code.claude.com/docs/en/llm-gateway-connect#verify-the-connection) propone una petición de un solo token que separa los problemas de configuración de los de la pasarela. Exporta las mismas variables en tu terminal y ejecuta:

```bash
curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
```

Cómo leer el resultado:

- Una respuesta que empieza por `{"id":"msg_` con un campo `content`: la URL y la credencial funcionan.
- Un error que dice que el modelo no existe: también funcionan, porque la pasarela te ha autenticado antes de rechazar el nombre del modelo.
- Un `401`: la credencial no vale o va en la cabecera equivocada. Si tu pasarela espera la clave en `x-api-key`, cambia la cabecera `Authorization` por `x-api-key` con tu `ANTHROPIC_API_KEY`.
- El mismo `503` que ves en Claude Code: el problema está en la pasarela o en lo que tiene detrás, no en tu equipo. Pon el `model` que usas en Claude Code para reproducirlo tal cual.

Recuerda que esta prueba corta puede pasar aunque un WAF bloquee las sesiones reales, como se explica en la sección del 403.

Un servicio compatible con la API de Anthropic, como laozhang.ai (`ANTHROPIC_BASE_URL=https://api.laozhang.ai`), también es un intermediario a efectos de diagnóstico: `/status` mostrará su base URL y sus errores se investigan con esta misma prueba. Si necesitas repasar dónde se definen estas variables, está en [Configuración de Claude Code API: claves, settings.json, modelos y gateways](https://blog.laozhang.ai/es/posts/claude-code-api-configuration).

## Error 529: capacidad de Anthropic, no tu cuota

```text
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.
```

Cuando este mensaje llega a tu pantalla, Claude Code ya ha reintentado hasta 10 veces con esperas crecientes. Según la [referencia de errores](https://code.claude.com/docs/en/errors#api-error-repeated-529-overloaded-errors), un 529 no es tu límite de uso ni cuenta contra tu cuota, y la capacidad se mide por modelo: cambiar a otro con `/model` suele permitirte seguir al momento. Si no, espera unos minutos y mira status.claude.com o la página de estado que nombre el mensaje.

Si `/status` muestra una base URL, la frase final nombrará ese host y el 529 puede ser la sobrecarga del proveedor que usa el intermediario. Cambiar de intermediario no añade capacidad a Anthropic. Para configurar un modelo de respaldo y las opciones en CI, sigue [Error 529 en Claude Code: qué hacer cuando la API se sobrecarga](https://blog.laozhang.ai/es/posts/claude-code-overloaded-error); si la caída te ha cortado una tarea larga a medias, [Claude Code 500 y 529: reanuda tras una caída sin duplicar trabajo](https://blog.laozhang.ai/es/posts/claude-code-500-529-rate-limit).

## A quién escribir y qué pruebas llevar

Cada capa tiene su responsable, y escribir al equivocado solo retrasa la solución. Según lo que te hayan dicho `/status` y el texto del error:

| Capa | A quién | Cuándo |
|---|---|---|
| Proxy, cortafuegos o VPN de empresa | Equipo de TI | El `curl` al host de descargas o a la API falla desde tu red y funciona desde otra |
| Suscripción o rol | Administrador de Console o Owner de Enterprise; en Pro/Max, el soporte de Claude | La suscripción está activa y el 403 sigue tras `/logout` y `/login` |
| Pasarela de tu organización o WAF | Quien administra la pasarela | Hay base URL en `/status` y el error es un 403 HTML o un 5xx con su host |
| Servicio intermediario | Su operador | Mensajes como `No available accounts`, `No available channel` o `restricted to the official Claude Code client` |
| Anthropic | `/feedback` dentro de Claude Code | No hay base URL, el error persiste y status.claude.com no muestra ninguna incidencia |

Lleva siempre lo mismo, sin credenciales:

- La línea completa del error, con el `request id` si aparece.
- Fecha y hora con zona horaria, y el modelo que usabas.
- La salida de `claude --version`.
- Las líneas `Anthropic base URL` y `Auth token` / `API key` de `/status`, con el token tapado.
- El resultado del `curl` que corresponda: descargas o API si vas directo, la prueba de un token si usas pasarela.

## Preguntas frecuentes

### ¿Un 403 en Claude Code significa que me han baneado?

Casi nunca. Un 403 con `Request not allowed` suele ser una suscripción inactiva o un rol sin acceso a Claude Code, y un `403 Forbidden` sin JSON viene de un proxy o un WAF. El único caso sin arreglo local es el de región (`App unavailable in region`), que depende del país desde el que te conectas, no de tu cuenta.

### ¿Borrar `~/.claude` arregla el 403?

No. Pierdes ajustes, historial y credenciales, y la causa (suscripción, rol, proxy o región) sigue ahí. Para renovar la sesión usa `/logout` y `/login`.

### ¿El 503 significa que Anthropic está caído?

Solo si `/status` no muestra base URL y status.claude.com tiene una incidencia abierta. Con textos como `No available accounts`, `No available channel` o `no available server`, el 503 lo genera un intermediario o un balanceador, y la página de estado de Anthropic puede seguir en verde.

### ¿Sigo reintentando cuando aparece el 529?

No en bucle: Claude Code ya ha reintentado hasta 10 veces antes de mostrarlo. Cambia de modelo con `/model` para seguir trabajando o espera unos minutos, y vuelve a enviar tu mensaje escribiendo «vuelve a intentarlo».
