Quay lại hướng dẫn
Khắc phục sự cố·23 tháng 9, 2026·Đọc 6 phút

Claude Code “context_management: Extra inputs are not permitted” — header beta đã không đến nơi

Claude Code gửi trường context_management cùng với header anthropic-beta bật tính năng này, và lỗi 400 này có nghĩa là trường đã đến một backend không chấp nhận nó: gateway hoặc proxy đã loại bỏ header, hoặc chuyển tiếp yêu cầu đến backend có schema khác, chẳng hạn Amazon Bedrock. Claude Code không thử lại. Đặt CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 trở lên) để ngừng gửi trường này, hoặc khiến gateway chuyển tiếp anthropic-beta.

Được xem xét lần cuối vào .

Claude Code gửi trường context_management cùng với header anthropic-beta bật tính năng này, và lỗi 400 này có nghĩa là trường đã đến một backend không chấp nhận nó: gateway hoặc proxy đã loại bỏ header, hoặc chuyển tiếp yêu cầu đến backend có schema khác, chẳng hạn Amazon Bedrock. Claude Code không thử lại. Đặt CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 trở lên) để ngừng gửi trường này, hoặc khiến gateway chuyển tiếp anthropic-beta.

Lỗi

phản hồi (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

Tổng quan nguyên nhân và cách khắc phục

Nguyên nhânCách khắc phục
Gateway chuyển tiếp phần thân nhưng loại bỏ anthropic-betaChuyển tiếp header nguyên trạng hoặc đặt CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 trên máy khách.
Gateway định dạng Anthropic đứng trước Amazon Bedrock hoặc Google CloudTrỏ Claude Code đến định dạng riêng của nhà cung cấp đó (CLAUDE_CODE_USE_BEDROCK hoặc CLAUDE_CODE_USE_VERTEX), hoặc đặt cờ này.
Claude Code cũ hơn 2.1.27Hãy cập nhật. Trước 2.1.27, cờ này không bao phủ context management.
Thay vào đó, lỗi nêu eager_input_streaming hoặc defer_loadingCùng một điểm không khớp, nhưng là trường công cụ beta. Từ 2.1.77, cờ này loại bỏ các trường đó.

Xác nhận header bị thiếu là nguyên nhân

Claude Code ghép từng trường phần thân phát hành trước với giá trị anthropic-beta bật trường đó, và hai phần này phải di chuyển cùng nhau: gateway loại bỏ header nhưng vẫn chuyển phần thân sẽ tạo ra lỗi 400 rõ ràng, còn chỉ khi cả hai đều bị thiếu thì tính năng mới âm thầm tắt (https://code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through, tính đến tháng 9 năm 2026). Gửi một yêu cầu đến URL cơ sở của bạn với trường và header tương ứng, theo dạng mà trang chỉnh sửa ngữ cảnh của Anthropic sử dụng, nhưng bỏ công cụ tìm kiếm web của trang đó (https://platform.claude.com/docs/en/build-with-claude/context-editing). Cùng lỗi 400 khi header hiện diện có nghĩa là header không đến được backend chấp nhận nó.

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

Ngăn Claude Code gửi trường này: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

Đây là cách khắc phục phía máy khách được ghi chép: tài liệu tham khảo lỗi của Claude Code đưa ra biến này cho thông báo này như phương án dự phòng khi không thể khiến gateway chuyển tiếp header (https://code.claude.com/docs/en/errors#extra-inputs-are-not-permitted). Nó loại bỏ các header anthropic-beta dành riêng cho Anthropic và các trường schema công cụ beta như defer_loading và eager_input_streaming (https://code.claude.com/docs/en/env-vars), đồng thời hướng dẫn gateway cho biết nó cũng dừng các trường phần thân phát hành trước, bao gồm context management (https://code.claude.com/docs/en/llm-gateway-protocol#disable-pre-release-capabilities). Cần Claude Code 2.1.27 trở lên: bản phát hành ngày 30 tháng 1 năm 2026 này là bản có changelog cho biết cờ này giờ đây tránh được lỗi context-management cho người dùng gateway (https://code.claude.com/docs/en/changelog). Cái giá phải trả là các khả năng phát hành trước và tính năng tìm kiếm công cụ MCP, vì vậy các công cụ MCP sẽ được tải ngay từ đầu (từ 2.1.227, cài đặt được quản lý có thể giữ tính năng tìm kiếm công cụ bật); suy luận thích ứng do mô hình lựa chọn, không phải beta, và vẫn bật. Đặt biến này trong khối env của ~/.claude/settings.json để áp dụng cho mọi phiên (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" } }

Nếu bạn vận hành gateway: hãy chuyển tiếp anthropic-beta hoặc chuyển đổi định dạng

Hướng dẫn gateway của Claude Code liệt kê anthropic-version và anthropic-beta là các header cần được chuyển tiếp nguyên trạng trên tuyến định dạng Anthropic, đồng thời yêu cầu gateway truyền qua các header và trường thân anthropic-* dưới dạng danh sách mở thay vì chỉ cho phép các mục hiện thấy, vì mỗi bản phát hành lại thêm mục mới. Hướng dẫn này nêu một nguồn phổ biến của lỗi 400: gateway chấp nhận yêu cầu định dạng Anthropic rồi chuyển tiếp chúng đến Amazon Bedrock. Nếu đó là thiết lập của bạn, hãy cung cấp định dạng riêng của nhà cung cấp và trỏ Claude Code đến đó bằng các biến của nhà cung cấp bên dưới; trên tuyến đó, Claude Code giới hạn các header và trường beta mà nó gửi ở những mục nhà cung cấp chấp nhận (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

Nếu bạn gọi qua Kunavo

Kunavo là một trong các gateway mà trang này đề cập. Cho đến ngày 24 tháng 9 năm 2026, /v1/messages của Kunavo chuyển tiếp phần thân JSON của bạn lên upstream đúng như đã gửi, bao gồm cả context_management, nhưng loại bỏ anthropic-beta — tổ hợp chuyển tiếp phần thân nhưng loại bỏ header mà tài liệu tham khảo lỗi của Claude Code nêu — và các yêu cầu Claude Code thông qua Kunavo thất bại với thông báo này cho đến đầu tháng 9 năm 2026, tất cả đều trên một kênh upstream đã ngừng hoạt động ngày 11 tháng 9. Hiện Kunavo chuyển tiếp các giá trị anthropic-beta không làm thay đổi chi phí yêu cầu, trong đó có context-management-2025-06-27, và loại bỏ phần còn lại, chẳng hạn fast mode, compaction, dự phòng phía máy chủ và beta ngữ cảnh 1M; một yêu cầu sử dụng fast mode, dự phòng phía máy chủ, compaction hoặc công cụ advisor sẽ nhận lỗi 400 nêu tên trường đó. Kênh đang phục vụ Claude hiện nay đã chấp nhận context_management cả khi có và không có header trong một thử nghiệm ngày 24 tháng 9 năm 2026, vì vậy có lẽ bạn sẽ không cần CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS với Kunavo. Kênh đó quyết định chấp nhận những trường phát hành trước nào bất kể các header được gửi đến: trong cùng thử nghiệm, nó từ chối output_config.task_budget và clear_at trong một thông báo hệ thống dưới dạng đầu vào bổ sung, dù có hay không có header tương ứng. Nếu bạn nhận được phản hồi từ chối, phản hồi đó sẽ có dạng HTTP 400 với kiểu invalid_request_error, mang theo nội dung thông báo của upstream cùng request id riêng của upstream được nối thêm; cả Kunavo lẫn Claude Code đều không thử lại và yêu cầu đó không bị tính phí. Phần còn lại của thiết lập Claude Code cho Kunavo có trong hướng dẫn tích hợp Claude Code.

Câu hỏi thường gặp

“context_management: Extra inputs are not permitted” có nghĩa là gì?

API hoặc backend phía sau gateway của bạn đã nhận một trường context_management mà nó không chấp nhận. Trên API Anthropic, trường đó cần header beta chỉnh sửa ngữ cảnh (context-management-2025-06-27), và tài liệu tham khảo lỗi của Claude Code quy nguyên nhân thông báo này cho proxy hoặc gateway đã loại bỏ header anthropic-beta. Claude Code gửi trường và header theo cặp, vì vậy một thành phần trung gian nào đó đã loại bỏ header hoặc chuyển tiếp yêu cầu đến backend có schema khác.

CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS có tắt suy nghĩ hoặc bộ nhớ đệm prompt không?

Không. Suy luận thích ứng do mô hình lựa chọn, không phải beta, và bộ nhớ đệm prompt tiêu chuẩn (cache_control) không có cặp beta. Cờ này loại bỏ các khả năng phát hành trước — header beta, trường công cụ beta, context management — cùng tính năng tìm kiếm công cụ MCP, vì vậy các công cụ MCP được tải ngay từ đầu. Trên các mô hình cũ sử dụng extended thinking thủ công, suy nghĩ xen kẽ giữa các lần gọi công cụ cần header beta, nên tính năng đó cũng bị tắt.

Có công tắc nào chỉ tắt context_management không?

Tính đến tháng 9 năm 2026, không có công tắc nào được ghi chép. Cờ này bao phủ mọi khả năng phát hành trước cùng lúc — ngoại lệ duy nhất, từ Claude Code 2.1.227, là giữ tính năng tìm kiếm công cụ MCP bật thông qua cài đặt được quản lý — và yêu cầu về công tắc chỉ dành cho context_management (anthropics/claude-code#64510) đã bị đóng do không hoạt động. Đừng dựa vào các biến không có trong tài liệu tham khảo biến môi trường của Claude Code.

Tôi có nên hạ cấp Claude Code không?

Vào tháng 1 năm 2026, những người bình luận trong anthropics/claude-code#21612 cho biết 2.1.20 là phiên bản cuối cùng hoạt động, nhưng bản sửa được phát hành là 2.1.27, với mục changelog cho biết cờ này bao phủ lỗi đó. Việc ghim ở phiên bản cũ như vậy cũng bỏ lỡ 2.1.77, bản đã khiến cờ loại bỏ các trường công cụ beta. Hãy đặt cờ và duy trì phiên bản hiện hành.

Lỗi thay vào đó nêu tools.0.custom.eager_input_streaming

Cùng loại điểm không khớp, nhưng là trường khác: một trường schema công cụ đã đến backend từ chối nó. Khi sử dụng URL cơ sở tùy chỉnh, Claude Code chỉ gửi trường đó — truyền công cụ chi tiết — nếu bạn đặt CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1. Từ 2.1.77, cờ này loại bỏ các trường công cụ beta, và 2.1.80 đã sửa lỗi 400 của tính năng truyền công cụ chi tiết qua proxy, Bedrock và Vertex.

Hướng dẫn liên quan

Thông tin chi tiết hơn về ý nghĩa lỗi có trong tài liệu tham chiếu lỗi; bạn chỉ mất một phút để lấy khóa qua đăng ký và hướng dẫn xác thực.