Volver a las guías
Solución de problemas·23 de septiembre de 2026·6 min de lectura

Claude Code “context_management: Extra inputs are not permitted”: el encabezado beta que no llegó

Claude Code envía el campo context_management junto con el encabezado anthropic-beta que lo habilita, y este 400 significa que el campo llegó a un backend que no lo aceptaría: una pasarela o un proxy eliminó el encabezado, o reenvió la solicitud a un backend con un esquema diferente, como Amazon Bedrock. Claude Code no lo reintenta. Establece CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 o posterior) para dejar de enviar el campo, o haz que la pasarela reenvíe anthropic-beta.

Última revisión: .

Claude Code envía el campo context_management junto con el encabezado anthropic-beta que lo habilita, y este 400 significa que el campo llegó a un backend que no lo aceptaría: una pasarela o un proxy eliminó el encabezado, o reenvió la solicitud a un backend con un esquema diferente, como Amazon Bedrock. Claude Code no lo reintenta. Establece CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 o posterior) para dejar de enviar el campo, o haz que la pasarela reenvíe anthropic-beta.

El error

response (HTTP 400)
// Through Kunavo, if a channel rejects the field: the upstream message, typed as
// Anthropic types a 400; no request_id field, the upstream's own id is appended:
{"type":"error","error":{"type":"invalid_request_error","message":"context_management: Extra inputs are not permitted (request id: …)"}}

// From Anthropic's API directly, as Claude Code prints it:
//   API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"context_management: Extra inputs are not permitted"},"request_id":"req_011C..."}

// request_id varies per request; a gateway may drop it, or append its own id to the message.
// Same mismatch, other fields: tools.0.custom.eager_input_streaming, tools.N.custom.defer_loading

Causas y soluciones de un vistazo

CausaSolución
Una pasarela reenvía el cuerpo, pero elimina anthropic-betaReenvía el encabezado sin cambios o establece CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 en el cliente.
Una pasarela con formato Anthropic delante de Amazon Bedrock o Google CloudDirige Claude Code al formato propio de ese proveedor (CLAUDE_CODE_USE_BEDROCK o CLAUDE_CODE_USE_VERTEX) o establece la opción.
Claude Code anterior a 2.1.27Actualiza. Antes de 2.1.27, la opción no cubría la gestión de contexto.
El error menciona eager_input_streaming o defer_loading en su lugarLa misma incompatibilidad, un campo beta de herramientas. La opción elimina esos campos a partir de 2.1.77.

Confirma que falta el encabezado

Claude Code empareja cada campo del cuerpo en versión preliminar con el valor anthropic-beta que lo habilita, y ambos deben viajar juntos: una pasarela que elimina el encabezado mientras deja pasar el cuerpo provoca fallos con código 400, y la función solo se desactiva silenciosamente cuando faltan ambos (https://code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through, a septiembre de 2026). Envía una solicitud a tu URL base con el campo y su encabezado, siguiendo la estructura de la página de edición de contexto de Anthropic, pero sin su herramienta de búsqueda web (https://platform.claude.com/docs/en/build-with-claude/context-editing). El mismo 400 con el encabezado presente significa que este no llega a un backend que lo acepte.

check_header.sh
curl -s "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: context-management-2025-06-27" \
  -H "content-type: application/json" \
  -d '{"model": "claude-sonnet-4-6", "max_tokens": 64,
       "messages": [{"role": "user", "content": "ping"}],
       "context_management": {"edits": [{"type": "clear_tool_uses_20250919"}]}}'

Evita que Claude Code lo envíe: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

Esta es la solución documentada del lado del cliente: la referencia de errores de Claude Code la proporciona para este mensaje como alternativa cuando no se puede hacer que la pasarela reenvíe el encabezado (https://code.claude.com/docs/en/errors#extra-inputs-are-not-permitted). Elimina los encabezados anthropic-beta específicos de Anthropic y los campos beta del esquema de herramientas, como defer_loading y eager_input_streaming (https://code.claude.com/docs/en/env-vars), y la guía de pasarelas añade que también detiene los campos de cuerpo de versión preliminar, incluida la gestión de contexto (https://code.claude.com/docs/en/llm-gateway-protocol#disable-pre-release-capabilities). Requiere Claude Code 2.1.27 o posterior: esa versión, del 30 de enero de 2026, es la que indica en su registro de cambios que la opción evita el error de gestión de contexto para usuarios de pasarelas (https://code.claude.com/docs/en/changelog). El coste son las capacidades de versión preliminar y la búsqueda de herramientas MCP, por lo que las herramientas MCP se cargan de antemano (desde 2.1.227, la configuración administrada puede mantener activada la búsqueda de herramientas); el razonamiento adaptativo lo elige el modelo, no una beta, y permanece activado. Inclúyelo en el bloque env de ~/.claude/settings.json para aplicarlo a todas las sesiones (https://code.claude.com/docs/en/settings-reference#env).

disable_betas.sh
claude --version          # 2.1.27 or later
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

# Every session, in ~/.claude/settings.json:
#   { "env": { "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1" } }

Si ejecutas la pasarela: reenvía anthropic-beta o adapta el formato

La guía de pasarelas de Claude Code enumera anthropic-version y anthropic-beta como encabezados que deben reenviarse sin cambios en una ruta con formato Anthropic, y pide a las pasarelas que transmitan los encabezados y campos del cuerpo anthropic-* como listas abiertas en lugar de permitir únicamente los que se conocen hoy, porque cada versión añade otros nuevos. Menciona una fuente habitual de este 400: una pasarela que acepta solicitudes con formato Anthropic y las reenvía a Amazon Bedrock. Si esa es tu configuración, expón el formato propio del proveedor y dirige Claude Code a él con las variables del proveedor que aparecen abajo; en esa ruta Claude Code limita los encabezados y campos beta que envía a los que el proveedor acepta (https://code.claude.com/docs/en/llm-gateway-connect#route-to-a-cloud-provider-through-a-gateway).

bedrock_format.sh
# Only if your gateway exposes the Amazon Bedrock format:
export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
export CLAUDE_CODE_USE_BEDROCK=1

Si llamas a través de Kunavo

Kunavo era una de las pasarelas a las que se refiere esta página. Hasta el 24 de septiembre de 2026, su /v1/messages reenviaba el cuerpo JSON al upstream tal como se recibía, incluido context_management, pero eliminaba anthropic-beta —la combinación de cuerpo reenviado y encabezado eliminado que menciona la referencia de errores de Claude Code—, y las solicitudes de Claude Code a través de Kunavo fallaron con este mensaje hasta principios de septiembre de 2026; todas utilizaban un canal upstream retirado el 11 de septiembre. Kunavo ahora reenvía los valores de anthropic-beta que no cambian el coste de una solicitud, incluido context-management-2025-06-27, y elimina el resto, como fast mode, compaction, server-side fallbacks y la beta de contexto de 1M; una solicitud que utiliza fast mode, server-side fallbacks, compaction o la herramienta advisor devuelve un 400 que nombra el campo. El canal que sirve Claude actualmente aceptó context_management con y sin su encabezado en una prueba del 24 de septiembre de 2026, por lo que no deberías necesitar CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS con Kunavo. Ese canal decide qué campos de versión preliminar acepta, independientemente de los encabezados recibidos: en la misma prueba rechazó output_config.task_budget y clear_at en un mensaje del sistema como entradas adicionales, con y sin sus encabezados. Si recibes un rechazo, llega como HTTP 400 de tipo invalid_request_error, con el texto del mensaje del upstream y el ID de solicitud propio del upstream añadido; ni Kunavo ni Claude Code lo reintentan y no se factura. El resto de la configuración de Claude Code para Kunavo está en la guía de integración de Claude Code.

Preguntas frecuentes

¿Qué significa “context_management: Extra inputs are not permitted”?

La API, o el backend situado detrás de tu pasarela, recibió un campo context_management que no acepta. En la API de Anthropic, ese campo necesita el encabezado beta de edición de contexto (context-management-2025-06-27), y la referencia de errores de Claude Code atribuye este mensaje a un proxy o pasarela que eliminó el encabezado anthropic-beta. Claude Code envía el campo y el encabezado como un par, así que algo intermedio eliminó el encabezado o reenvió la solicitud a un backend con un esquema diferente.

¿CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS desactiva el thinking o la caché de prompts?

No. El razonamiento adaptativo lo selecciona el modelo, no una beta, y la caché estándar de prompts (cache_control) no tiene una asociación beta. La opción elimina las capacidades de versión preliminar —encabezados beta, campos beta de herramientas y gestión de contexto— además de la búsqueda de herramientas MCP, por lo que las herramientas MCP se cargan de antemano. En modelos antiguos que usan thinking extendido manual, el thinking intercalado entre llamadas de herramientas necesita un encabezado beta, por lo que también se desactiva.

¿Existe una opción que desactive únicamente context_management?

No hay una opción documentada, a septiembre de 2026. La opción cubre todas las capacidades de versión preliminar a la vez; la única excepción, desde Claude Code 2.1.227, es mantener activada la búsqueda de herramientas MCP mediante la configuración administrada. Una solicitud de una opción exclusiva para context_management (anthropics/claude-code#64510) se cerró por inactividad. No dependas de variables que no aparecen en la referencia de variables de entorno de Claude Code.

¿Debería volver a una versión anterior de Claude Code?

En enero de 2026, comentaristas de anthropics/claude-code#21612 señalaron 2.1.20 como la última versión que funcionaba, pero la corrección publicada fue 2.1.27, cuyo registro de cambios indica que la opción cubre este error. Una versión fijada tan antigua también omite 2.1.77, que hizo que la opción eliminara los campos beta de herramientas. Establece la opción y mantente actualizado.

El error menciona tools.0.custom.eager_input_streaming

Es el mismo tipo de incompatibilidad, pero con otro campo: un campo del esquema de herramientas llegó a un backend que lo rechaza. Detrás de una URL base personalizada, Claude Code envía ese campo —streaming de herramientas de granularidad fina— solo si estableces CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1. La opción elimina los campos beta de herramientas desde 2.1.77, y 2.1.80 corrigió los errores 400 del streaming de herramientas de granularidad fina a través de proxies, Bedrock y Vertex.

Guías relacionadas

Encontrarás más detalles sobre el significado de los errores en referencia de errores; obtener una clave lleva un minuto mediante registro y la guía de autenticación.