返回指南
疑難排解·2026年9月23日·閱讀約 6 分鐘

Claude Code「context_management: Extra inputs are not permitted」——未送達的 beta 標頭

Claude Code 會將 context_management 欄位與啟用該功能的 anthropic-beta 標頭一同傳送,而此 400 錯誤表示該欄位已抵達不接受它的後端:閘道或 Proxy 丟棄了標頭,或將請求轉送至不同結構的後端,例如 Amazon Bedrock。Claude Code 不會重試此錯誤。設定 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1(Claude Code 2.1.27 或更新版本)即可停止傳送該欄位,或讓閘道轉送 anthropic-beta。

最後審核於 。

Claude Code 會將 context_management 欄位與啟用該功能的 anthropic-beta 標頭一同傳送,而此 400 錯誤表示該欄位已抵達不接受它的後端:閘道或 Proxy 丟棄了標頭,或將請求轉送至不同結構的後端,例如 Amazon Bedrock。Claude Code 不會重試此錯誤。設定 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1(Claude Code 2.1.27 或更新版本)即可停止傳送該欄位,或讓閘道轉送 anthropic-beta。

錯誤

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

原因與解決方法一覽

原因解決方法
閘道轉送本文,但丟棄 anthropic-beta原樣轉送該標頭,或在用戶端設定 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。
位於 Amazon Bedrock 或 Google Cloud 前方的 Anthropic 格式閘道讓 Claude Code 使用該提供者自己的格式(CLAUDE_CODE_USE_BEDROCK 或 CLAUDE_CODE_USE_VERTEX),或設定該旗標。
早於 2.1.27 的 Claude Code請更新。在 2.1.27 之前,該旗標不涵蓋 context management。
錯誤改為指出 eager_input_streaming 或 defer_loading相同的不相容問題,但這次是 beta 工具欄位。從 2.1.77 起,該旗標會移除這些欄位。

確認缺少的是該標頭

Claude Code 會將每個預發布本文欄位與啟用它的 anthropic-beta 值配對,兩者必須一起傳送:閘道在轉送本文的同時剝除標頭,會產生硬性 400 錯誤;只有兩者都缺少時,該功能才會靜默關閉(截至 2026 年 9 月,https://code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through)。向你的基礎 URL 傳送一個請求,包含該欄位及其標頭,格式比照 Anthropic 的 context-editing 頁面,但移除其網頁搜尋工具(https://platform.claude.com/docs/en/build-with-claude/context-editing)。若標頭存在時仍得到相同的 400,表示該標頭沒有抵達接受它的後端。

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"}]}}'

停止 Claude Code 傳送它:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

這是有文件記載的用戶端修正方式:當無法讓閘道轉送標頭時,Claude Code 自己的錯誤參考資料會針對此訊息提供該設定作為備援(https://code.claude.com/docs/en/errors#extra-inputs-are-not-permitted)。它會移除 Anthropic 專用的 anthropic-beta 標頭,以及 defer_loading 和 eager_input_streaming 等 beta 工具結構欄位(https://code.claude.com/docs/en/env-vars);閘道指南也補充說,它會停止傳送預發布本文欄位,包括上下文管理(https://code.claude.com/docs/en/llm-gateway-protocol#disable-pre-release-capabilities)。需要 Claude Code 2.1.27 或更新版本:該版本於 2026 年 1 月 30 日發布,其變更記錄表示此旗標現在可避免閘道使用者遇到上下文管理錯誤(https://code.claude.com/docs/en/changelog)。代價是無法使用預發布功能和 MCP 工具搜尋,因此 MCP 工具會預先載入(從 2.1.227 起,受管理的設定可維持工具搜尋啟用);自適應推理由模型選擇,而非由 beta 控制,因此會維持啟用。將其放在 ~/.claude/settings.json 的 env 區塊中,即可套用至每個工作階段(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" } }

如果你執行閘道:轉送 anthropic-beta,或橋接格式

Claude Code 的閘道指南列出 anthropic-version 和 anthropic-beta,要求在 Anthropic 格式路由上原樣轉送這些標頭;同時要求閘道將 anthropic-* 標頭和本文欄位作為開放清單傳遞,而不是僅允許目前已知的欄位,因為每個版本都會加入新的欄位。指南指出一個常見的 400 來源:閘道接受 Anthropic 格式請求,並將其轉送至 Amazon Bedrock。若你的設定屬於此情況,請公開提供者自己的格式,並使用下方的提供者變數將 Claude Code 指向該格式;在該路由上,Claude Code 會將所傳送的 beta 標頭和欄位限制為提供者接受的內容(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

如果你透過 Kunavo 呼叫

Kunavo 是本頁所討論的閘道之一。在 2026 年 9 月 24 日之前,其 /v1/messages 會將你的 JSON 本文按原樣傳送至上游,包括 context_management,但會丟棄 anthropic-beta——這正是 Claude Code 錯誤參考資料所指出的「本文已轉送、標頭遭丟棄」組合;Claude Code 透過 Kunavo 的請求因這則訊息而失敗的情況持續到 2026 年 9 月初,所有這些失敗請求都發生在 9 月 11 日退役的上游通道上。Kunavo 現在會轉送不會改變請求成本的 anthropic-beta 值,包括 context-management-2025-06-27,並丟棄其餘值,例如快速模式、壓縮、伺服器端備援和 1M 上下文 beta;使用快速模式、伺服器端備援、壓縮或 advisor 工具的請求會收到指出該欄位的 400。2026 年 9 月 24 日的測試顯示,目前為 Claude 提供服務的通道在有無標頭的情況下都接受 context_management,因此使用 Kunavo 時應該不需要設定 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS。無論收到什麼標頭,該通道都會自行決定接受哪些預發布欄位:在同一測試中,無論有無相應標頭,它都拒絕了 output_config.task_budget 和系統訊息的 clear_at,並將其視為額外輸入。若拒絕回傳給你,會以 HTTP 400、類型為 invalid_request_error 的形式送達,攜帶上游的訊息文字,並在末尾附加上游自己的請求 ID;Kunavo 和 Claude Code 都不會重試,且不會計費。 Kunavo 的其他 Claude Code 設定位於 Claude Code 整合指南.

常見問題

「context_management: Extra inputs are not permitted」是什麼意思?

API 或閘道後方的後端收到它不接受的 context_management 欄位。在 Anthropic 的 API 上,該欄位需要 context-editing beta 標頭(context-management-2025-06-27),而 Claude Code 的錯誤參考資料將此訊息歸因於 Proxy 或閘道移除了 anthropic-beta 標頭。Claude Code 會成對傳送該欄位和標頭,因此中間的某個元件移除了標頭,或將請求轉送至不同結構的後端。

CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 會關閉 thinking 或提示快取嗎?

不會。Adaptive reasoning 由模型選擇,而非由 beta 控制;標準提示快取(cache_control)也沒有 beta 配對。該旗標移除的是預發布功能——beta 標頭、beta 工具欄位、context management——以及 MCP 工具搜尋,因此 MCP 工具會預先載入。使用手動 extended thinking 的較舊模型,需要 beta 標頭才能在工具呼叫之間進行 interleaved thinking,因此該功能也會一併關閉。

有沒有只關閉 context_management 的開關?

截至 2026 年 9 月,沒有有文件記載的開關。該旗標會一次涵蓋所有預發布功能——唯一的例外是從 Claude Code 2.1.227 起,可透過受管理的設定維持 MCP 工具搜尋啟用——而要求只針對 context_management 的開關(anthropics/claude-code#64510)已因不活躍而關閉。不要依賴 Claude Code 環境變數參考資料中沒有列出的變數。

我應該改用較舊版本的 Claude Code 嗎?

2026 年 1 月,anthropics/claude-code#21612 的留言者回報 2.1.20 是最後一個可正常運作的版本,但實際推出的修正是 2.1.27,其變更記錄說明該旗標涵蓋此錯誤。固定在如此舊的版本也會錯過 2.1.77,該版本讓旗標能移除 beta 工具欄位。設定旗標並保持在最新版本。

錯誤改為指出 tools.0.custom.eager_input_streaming

同類型的不相容問題,但欄位不同:工具結構欄位抵達拒絕它的後端。使用自訂基礎 URL 時,只有在設定 CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1 的情況下,Claude Code 才會傳送該欄位——細粒度工具串流。從 2.1.77 起,該旗標會移除 beta 工具欄位;2.1.80 修正了透過 Proxy、Bedrock 和 Vertex 進行細粒度工具串流時的 400 錯誤。

相關指南

更多錯誤語意請參閱 錯誤參考;透過 註冊 和 身分驗證指南 取得金鑰只需一分鐘。