Kembali ke panduan
Pemecahan masalah·23 September 2026·Baca 6 menit

Claude Code “context_management: Extra inputs are not permitted” — header beta yang tidak tiba

Claude Code mengirim field context_management bersama header anthropic-beta yang mengaktifkannya, dan 400 ini berarti field tersebut mencapai backend yang tidak menerimanya: gateway atau proxy menghapus header, atau meneruskan permintaan ke backend dengan skema berbeda, seperti Amazon Bedrock. Claude Code tidak mencoba ulang. Tetapkan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 atau lebih baru) untuk berhenti mengirim field tersebut, atau buat gateway meneruskan anthropic-beta.

Terakhir ditinjau pada .

Claude Code mengirim field context_management bersama header anthropic-beta yang mengaktifkannya, dan 400 ini berarti field tersebut mencapai backend yang tidak menerimanya: gateway atau proxy menghapus header, atau meneruskan permintaan ke backend dengan skema berbeda, seperti Amazon Bedrock. Claude Code tidak mencoba ulang. Tetapkan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 (Claude Code 2.1.27 atau lebih baru) untuk berhenti mengirim field tersebut, atau buat gateway meneruskan anthropic-beta.

Error

respons (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

Ringkasan penyebab dan perbaikan

PenyebabPerbaikan
Gateway meneruskan body tetapi menghapus anthropic-betaTeruskan header tanpa perubahan, atau tetapkan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 pada client.
Gateway berformat Anthropic di depan Amazon Bedrock atau Google CloudArahkan Claude Code ke format milik provider tersebut (CLAUDE_CODE_USE_BEDROCK atau CLAUDE_CODE_USE_VERTEX), atau tetapkan flag tersebut.
Claude Code lebih lama dari 2.1.27Perbarui. Sebelum 2.1.27, flag tersebut belum mencakup context management.
Error menyebut eager_input_streaming atau defer_loadingKetidakcocokan yang sama, yaitu field tool beta. Flag tersebut menghapusnya mulai 2.1.77.

Pastikan header memang yang hilang

Claude Code memasangkan setiap field body prarilis dengan nilai anthropic-beta yang mengaktifkannya, dan keduanya harus berjalan bersama: gateway yang menghapus header tetapi meneruskan body menghasilkan 400 yang tegas, dan fitur hanya dinonaktifkan secara diam-diam ketika keduanya hilang (https://code.claude.com/docs/en/llm-gateway-protocol#feature-pass-through, per September 2026). Kirim satu permintaan ke base URL Anda dengan field dan header-nya, dalam bentuk yang digunakan halaman context-editing Anthropic, tanpa tool web search (https://platform.claude.com/docs/en/build-with-claude/context-editing). 400 yang sama saat header ada berarti header tersebut tidak mencapai backend yang menerimanya.

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

Hentikan pengiriman oleh Claude Code: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

Ini adalah perbaikan sisi client yang didokumentasikan: referensi error Claude Code sendiri memberikannya untuk pesan ini sebagai fallback ketika gateway tidak dapat dibuat meneruskan header (https://code.claude.com/docs/en/errors#extra-inputs-are-not-permitted). Ini menghapus header anthropic-beta khusus Anthropic dan field skema tool beta seperti defer_loading dan eager_input_streaming (https://code.claude.com/docs/en/env-vars), dan panduan gateway menambahkan bahwa flag ini juga menghentikan field body prarilis, termasuk context management (https://code.claude.com/docs/en/llm-gateway-protocol#disable-pre-release-capabilities). Flag ini memerlukan Claude Code 2.1.27 atau lebih baru: rilis tersebut, 30 Januari 2026, adalah rilis yang changelog-nya menyatakan flag kini mencegah error context-management bagi pengguna gateway (https://code.claude.com/docs/en/changelog). Konsekuensinya adalah kapabilitas prarilis dan pencarian tool MCP; tool MCP dimuat sejak awal (mulai 2.1.227, pengaturan terkelola dapat mempertahankan pencarian tool); adaptive reasoning dipilih oleh model, bukan oleh beta, dan tetap aktif. Masukkan ke blok env pada ~/.claude/settings.json untuk menerapkannya ke setiap sesi (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" } }

Jika Anda menjalankan gateway: teruskan anthropic-beta, atau jembatani formatnya

Panduan gateway Claude Code mencantumkan anthropic-version dan anthropic-beta sebagai header yang harus diteruskan tanpa perubahan pada rute berformat Anthropic, serta meminta gateway meneruskan header dan field body anthropic-* sebagai daftar terbuka, bukan hanya mengizinkan yang terlihat saat ini, karena setiap rilis menambahkan yang baru. Panduan tersebut menyebut sumber umum 400 ini: gateway yang menerima permintaan berformat Anthropic dan meneruskannya ke Amazon Bedrock. Jika itu penyiapan Anda, tampilkan format milik provider dan arahkan Claude Code ke sana menggunakan variabel provider di bawah; pada rute tersebut Claude Code membatasi header dan field beta yang dikirimnya hanya pada yang diterima provider (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

Jika Anda melakukan panggilan melalui Kunavo

Kunavo adalah salah satu gateway yang dibahas halaman ini. Hingga 24 September 2026, /v1/messages Kunavo meneruskan body JSON Anda ke upstream sebagaimana dikirim, termasuk context_management, tetapi menghapus anthropic-beta — kombinasi body diteruskan, header dihapus yang disebut referensi error Claude Code — dan permintaan Claude Code melalui Kunavo gagal dengan pesan ini hingga awal September 2026, semuanya pada channel upstream yang dihentikan pada 11 September. Kunavo kini meneruskan nilai anthropic-beta yang tidak mengubah biaya permintaan, termasuk context-management-2025-06-27, dan menghapus sisanya, seperti fast mode, fallback sisi server, compaction, serta beta konteks 1M; permintaan yang menggunakan fast mode, fallback sisi server, compaction, atau advisor tool menerima 400 yang menyebut field tersebut. Channel yang melayani Claude saat ini menerima context_management dengan maupun tanpa header-nya dalam pengujian 24 September 2026, jadi Anda seharusnya tidak perlu menggunakan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS dengan Kunavo. Channel tersebut menentukan field prarilis mana yang diterimanya berdasarkan header apa pun yang tiba: dalam pengujian yang sama, channel tersebut menolak output_config.task_budget dan clear_at pada pesan sistem sebagai input tambahan, dengan maupun tanpa header-nya. Jika penolakan sampai kepada Anda, penolakan tersebut tiba sebagai HTTP 400 bertipe invalid_request_error, membawa teks pesan upstream dengan request id upstream sendiri yang ditambahkan; baik Kunavo maupun Claude Code tidak mencoba ulang, dan permintaan itu tidak ditagihkan. Penyiapan Claude Code lainnya untuk Kunavo terdapat di panduan integrasi Claude Code.

Pertanyaan umum

Apa arti “context_management: Extra inputs are not permitted”?

API, atau backend di balik gateway Anda, menerima field context_management yang tidak didukungnya. Pada API Anthropic, field tersebut memerlukan header beta context-editing (context-management-2025-06-27), dan referensi error Claude Code mengaitkan pesan ini dengan proxy atau gateway yang menghapus header anthropic-beta. Claude Code mengirim field dan header tersebut sebagai pasangan, jadi sesuatu di antaranya menghapus header atau meneruskan permintaan ke backend dengan skema berbeda.

Apakah CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS menonaktifkan thinking atau prompt caching?

Tidak. Adaptive reasoning dipilih oleh model, bukan oleh beta, dan prompt caching standar (cache_control) tidak memiliki pasangan beta. Yang dihapus oleh flag ini adalah kemampuan prarilis — header beta, field tool beta, manajemen konteks — serta pencarian tool MCP, sehingga tool MCP dimuat sejak awal. Pada model lama yang menggunakan extended thinking manual, interleaved thinking di antara pemanggilan tool memerlukan header beta, sehingga fitur itu juga ikut dinonaktifkan.

Apakah ada switch yang hanya menonaktifkan context_management?

Belum ada yang terdokumentasi, per September 2026. Flag ini mencakup semua kemampuan prarilis sekaligus — satu pengecualian, sejak Claude Code 2.1.227, adalah mempertahankan pencarian tool MCP melalui managed settings — dan permintaan untuk switch khusus context_management (anthropics/claude-code#64510) ditutup karena tidak aktif. Jangan mengandalkan variabel yang tidak tercantum dalam referensi environment variable Claude Code.

Sebaiknya saya menurunkan versi Claude Code saja?

Pada Januari 2026, para komentator di anthropics/claude-code#21612 melaporkan bahwa 2.1.20 adalah versi terakhir yang berfungsi, tetapi perbaikan yang dirilis adalah 2.1.27, yang entri changelog-nya membuat flag mencakup error ini. Pin ke versi setua itu juga melewatkan 2.1.77, yang membuat flag menghapus field tool beta. Tetapkan flag tersebut dan gunakan versi terbaru.

Error-nya menyebut tools.0.custom.eager_input_streaming

Jenis ketidakcocokannya sama, tetapi field-nya berbeda: sebuah field skema tool sampai ke backend yang menolaknya. Di balik base URL kustom, Claude Code hanya mengirim field tersebut — fine-grained tool streaming — jika Anda menetapkan CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1. Flag ini menghapus field tool beta mulai 2.1.77, dan 2.1.80 memperbaiki error 400 fine-grained tool streaming melalui proxy, Bedrock, dan Vertex.

Panduan terkait

Detail semantik error lainnya tersedia di referensi error; mendapatkan kunci hanya perlu satu menit melalui pendaftaran dan panduan autentikasi.