Jika Anda menemui pesan error ini saat menghubungkan Claude Code dengan AWS Bedrock:
InvokeModelWithResponseStream: operation error Bedrock Runtime:
InvokeModelWithResponseStream, https response error StatusCode: 400,
RequestID: 47574f13-c884-4b12-a003-6d0cf252d8dd,
ValidationException: system.1.cache_control.***.scope:
Extra inputs are not permitted
Terutama jika sering muncul saat menggunakan --resume untuk melanjutkan sesi historis—ini adalah masalah kompatibilitas yang sudah diketahui, bukan kesalahan konfigurasi Anda.
Penyebab utamanya adalah Claude Code mengirimkan field scope yang tidak didukung oleh Bedrock. Perbaikannya cukup dengan mengatur 1 variabel lingkungan, selesai dalam 30 detik.
Nilai Inti: Setelah membaca artikel ini, Anda akan memahami akar penyebab error ini, menguasai 3 solusi perbaikan, serta mengetahui cara konfigurasi yang tepat di berbagai lingkungan seperti CLI, VS Code, dan JetBrains.

Analisis Mendalam Penyebab Error Claude Code di Bedrock
Untuk memahami error ini, Anda perlu mengetahui latar belakang penting: tingkat dukungan cache_control yang berbeda antara API asli Anthropic dan AWS Bedrock.
Akar Penyebab Teknis
Pada Januari 2026, Anthropic meluncurkan fitur Beta prompt-caching-scope-2026-01-05 pada API aslinya, yang menambahkan field scope ke objek cache_control:
{
"cache_control": {
"type": "ephemeral",
"scope": "turn"
}
}
Mulai dari Claude Code v2.1.24, field scope ini disertakan secara default dalam permintaan API.
Masalahnya adalah: AWS Bedrock tidak mengenali field scope, dan validasi skema Bedrock sangat ketat—setiap field yang tidak dikenal akan langsung menghasilkan error 400.
| Fitur | API Asli Anthropic | AWS Bedrock |
|---|---|---|
cache_control.type: "ephemeral" |
Didukung | Didukung |
cache_control.ttl: "5m" |
Didukung | Didukung |
cache_control.ttl: "1h" |
Didukung | Didukung (sejak Jan 2026) |
cache_control.scope |
Didukung (Beta) | Tidak didukung, error 400 |
| Header Beta | Diterima | Ditolak (invalid beta flag) |
| Kebijakan validasi skema | Longgar (mengabaikan field asing) | Ketat (menolak field asing) |
Singkatnya: API asli Anthropic lebih toleran dan akan mengabaikan field yang tidak dikenal. Bedrock lebih ketat dan langsung menolaknya. Claude Code mengirimkan field yang tidak dikenal oleh Bedrock, sehingga Bedrock memicu error.
🎯 Saran Teknis: Masalah ini hanya memengaruhi pengguna yang memanggil Claude melalui AWS Bedrock. Jika Anda menggunakan API asli Anthropic (misalnya melalui platform APIYI apiyi.com), Anda tidak akan menemui error ini karena API asli mendukung penuh field
scope.
Mengapa --resume Lebih Sering Memicu Error
Meskipun error ini tidak eksklusif untuk --resume, penggunaan perintah ini memang lebih sering memicu masalah tersebut. Berikut alasannya:

Mekanisme internal --resume:
- Memuat sesi historis: Membaca catatan percakapan lengkap dari
~/.claude/projects/<proyek>/<ID_sesi>.jsonl. - Membangun kembali konteks: Menggabungkan kembali system prompt, definisi alat, dan semua pesan historis menjadi array
messagesyang utuh. - Optimasi cache: Karena konteks yang dipulihkan biasanya besar (berisi riwayat percakapan lengkap), Claude Code akan lebih agresif dalam menetapkan titik henti
cache_controlpada pesan sistem untuk mengoptimalkan biaya. - Mengirim permintaan: Panggilan API pertama sudah menyertakan konteks yang dibangun kembali +
cache_control(termasuk fieldscope).
Poin Kunci: Saat memulihkan sesi, konteks lebih besar → optimasi cache lebih agresif → field cache_control muncul lebih sering → probabilitas memicu error lebih tinggi.
Memulai sesi baru juga bisa memicu error, tetapi karena konteks awal lebih kecil, penanda cache mungkin tidak sepadat itu.
Solusi Perbaikan Error Claude Code Bedrock 1: Nonaktifkan Beta Eksperimental (Direkomendasikan)
Ini adalah solusi yang paling disarankan—selain memperbaiki error, fitur dasar Prompt Caching juga tetap bisa digunakan.
Prinsip Solusi
Dengan mengatur CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, Claude Code akan:
- Menghapus header Beta dari permintaan (seperti
prompt-caching-scope-2026-01-05) - Menghapus kolom
scopedi dalamcache_control - Mempertahankan kolom yang didukung Bedrock seperti
cache_control.typedancache_control.ttl
Artinya, Anda tetap bisa menikmati optimasi biaya dari Prompt Caching, hanya saja fitur scope yang baru tidak digunakan.
Pengaturan Terminal CLI
macOS / Linux:
# Pengaturan sementara (hanya berlaku untuk sesi terminal saat ini)
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# Pengaturan permanen (tambahkan ke file konfigurasi shell)
echo 'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1' >> ~/.zshrc
source ~/.zshrc
# Jika menggunakan bash
echo 'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1' >> ~/.bashrc
source ~/.bashrc
Windows (PowerShell):
# Pengaturan sementara
$env:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = "1"
# Pengaturan permanen
[System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS", "1", "User")
Setelah diatur, jalankan saja Claude Code seperti biasa:
# Sesi baru
claude
# Melanjutkan sesi (sekarang tidak akan error lagi)
claude --resume
Pengaturan Ekstensi VS Code (Penting!)
Ekstensi VS Code tidak membaca variabel lingkungan shell—meskipun Anda sudah mengaturnya di .zshrc, ekstensi Claude Code di VS Code tidak akan membacanya. Anda harus mengaturnya melalui cara berikut:
Metode 1: Mengubah file konfigurasi global Claude (Direkomendasikan)
Edit ~/.claude/settings.json:
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
Metode 2: Melalui pengaturan VS Code
Buka pengaturan VS Code → cari claude → temukan opsi konfigurasi variabel lingkungan → tambahkan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Pengaturan IDE JetBrains
Plugin Claude Code di seri IDE JetBrains (IntelliJ, WebStorm, PyCharm, dll.) juga perlu dikonfigurasi secara terpisah:
Edit ~/.claude/settings.json (menggunakan file yang sama dengan VS Code):
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
💡 Tips:
~/.claude/settings.jsonadalah file konfigurasi global untuk Claude Code, yang akan dibaca oleh semua klien (CLI, VS Code, JetBrains). Mengatur variabel lingkungan di sini adalah cara paling praktis agar berlaku di semua platform sekaligus.
Solusi Perbaikan Error Claude Code Bedrock 2: Nonaktifkan Prompt Caching
Jika solusi pertama masih belum menyelesaikan masalah Anda (dalam kasus yang sangat jarang), Anda bisa menonaktifkan Prompt Caching sepenuhnya.
Prinsip Solusi
Dengan mengatur DISABLE_PROMPT_CACHING=1, Claude Code akan menghapus semua kolom cache_control dari permintaan. Tanpa cache_control, secara otomatis tidak ada scope, sehingga error akan hilang sepenuhnya.
Konsekuensi: Kehilangan optimasi biaya dari Prompt Caching. Untuk percakapan panjang, ini bisa berarti biaya token yang lebih tinggi.
Cara Pengaturan
# CLI
export DISABLE_PROMPT_CACHING=1
# ~/.claude/settings.json (berlaku untuk semua platform)
{
"env": {
"DISABLE_PROMPT_CACHING": "1"
}
}
Kapan Harus Memilih Solusi 2?
| Skenario | Pilih Solusi 1 | Pilih Solusi 2 |
|---|---|---|
| Pengguna Bedrock umum | ✅ Direkomendasikan | |
| Masih error setelah Solusi 1 | ✅ | |
| Menggunakan gateway seperti LiteLLM | ✅ Lebih aman | |
| Percakapan pendek, tidak peduli biaya cache | ✅ Tidak berpengaruh | |
| Percakapan panjang, fokus pada optimasi biaya | ✅ Pertahankan cache | ❌ Akan menambah biaya |
Solusi Perbaikan Error Claude Code Bedrock 3: Konfigurasi "Asuransi Ganda"
Atur kedua variabel lingkungan secara bersamaan untuk memastikan semua kolom yang tidak didukung oleh Bedrock dibersihkan.
# CLI
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1
// ~/.claude/settings.json
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"DISABLE_PROMPT_CACHING": "1"
}
}
Ini adalah konfigurasi paling aman, cocok untuk skenario di lingkungan produksi yang membutuhkan stabilitas mutlak.
🚀 Ide Lain: Jika Anda tidak ingin repot dengan variabel lingkungan dan tidak ingin dibatasi oleh masalah kompatibilitas Bedrock, pertimbangkan untuk beralih ke API asli Anthropic. Melalui platform APIYI (apiyi.com), Anda dapat langsung mengakses antarmuka asli Anthropic, mendukung penuh semua fitur Prompt Caching (termasuk
scope), dan tidak memerlukan akun AWS.
Alur Lengkap Pemecahan Masalah Error Claude Code Bedrock
Jika Anda tidak yakin solusi mana yang berlaku untuk situasi Anda, ikuti alur pemecahan masalah berikut:

Langkah 1: Konfirmasi Jenis Error
Periksa apakah pesan error mengandung kata kunci berikut:
cache_control.***.scope: Extra inputs are not permitted
atau
ValidationException: ... cache_control ... scope
Jika ya, berarti itu adalah masalah kompatibilitas kolom scope.
Langkah 2: Konfirmasi Jalur Pemanggilan
# Periksa endpoint API yang digunakan Claude Code saat ini
echo $ANTHROPIC_BASE_URL
echo $CLAUDE_CODE_USE_BEDROCK
Jika Anda mengatur CLAUDE_CODE_USE_BEDROCK=1 atau variabel terkait Bedrock lainnya seperti AWS_REGION, berarti Anda sedang menggunakan Bedrock.
Langkah 3: Terapkan Perbaikan
# Coba solusi pertama terlebih dahulu
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# Tes apakah sudah diperbaiki
claude --resume
Langkah 4: Verifikasi Perbaikan
# Verifikasi apakah variabel lingkungan sudah aktif
echo $CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS
# Seharusnya menampilkan: 1
# Tes sesi baru
claude
# Tes pemulihan sesi
claude --resume
Langkah 5: Jika Masih Error
# Tambahkan solusi kedua
export DISABLE_PROMPT_CACHING=1
# Periksa juga settings.json
cat ~/.claude/settings.json
Pastikan format settings.json sudah benar:
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
"DISABLE_PROMPT_CACHING": "1"
}
}
🎯 Saran Teknis: Jika Anda menggunakan gateway proksi seperti LiteLLM untuk terhubung ke Bedrock, LiteLLM sejak Maret 2026 telah menyertakan fitur pembersihan otomatis untuk kolom
scope(PR #22867). Memperbarui ke versi terbaru LiteLLM juga dapat menyelesaikan masalah ini. Jika Anda mencari solusi akses API Claude yang lebih stabil, APIYI (apiyi.com) menyediakan saluran API asli Anthropic yang secara alami tidak terpengaruh oleh batasan kompatibilitas semacam ini.
Masalah Kompatibilitas Umum Lainnya pada Claude Code Bedrock
cache_control.scope bukanlah satu-satunya kendala kompatibilitas di Bedrock. Berikut adalah masalah serupa yang sering ditemui pengguna Bedrock:
| Kata Kunci Error | Penyebab | Cara Memperbaiki |
|---|---|---|
cache_control.scope: Extra inputs |
Field scope tidak didukung | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
invalid beta flag |
Header Beta tidak didukung | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
thinking: undefined |
Format parameter thinking tidak kompatibel | Perbarui Claude Code ke versi terbaru |
Terkait context_management |
Field manajemen konteks tidak didukung | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
eager_input_streaming |
Optimasi streaming input tidak didukung | CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
Sebagian besar masalah dapat diselesaikan secara menyeluruh dengan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, karena field yang tidak didukung ini pada dasarnya adalah fitur Beta dari API asli Anthropic.
💰 Optimasi Biaya: Prompt Caching di Bedrock hanya mendukung TTL 5 menit dan 1 jam. Jika skenario penggunaan Anda sangat bergantung pada caching, mengakses API asli Anthropic melalui APIYI (apiyi.com) dapat memberikan strategi caching yang lebih fleksibel sekaligus menghindari biaya troubleshooting akibat masalah kompatibilitas di atas.
FAQ Masalah Error Claude Code Bedrock
Q1: Sudah mengatur variabel lingkungan, tapi di VS Code masih muncul error?
Ekstensi VS Code tidak akan mewarisi variabel lingkungan yang Anda atur di .zshrc atau .bashrc. Anda harus mengaturnya melalui field env di file ~/.claude/settings.json:
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
Setelah diatur, restart VS Code (bukan sekadar reload window, melainkan keluar sepenuhnya lalu buka kembali) untuk memastikan konfigurasi diterapkan.
Q2: Apakah menonaktifkan Prompt Caching akan memengaruhi performa?
Tidak akan memengaruhi kualitas output model maupun kecepatan respons. Prompt Caching hanyalah mekanisme optimasi biaya—saat cache berhasil (hit), biaya token untuk komputasi ulang dapat dikurangi. Jika dinonaktifkan, setiap permintaan akan dikenakan biaya penuh, namun performa model tetap sama persis. Untuk percakapan singkat, perbedaan biayanya sangat kecil. Dalam skenario percakapan panjang, caching dapat menghemat 30-50% biaya token input.
Q3: Apakah masalah ini akan diperbaiki secara resmi?
Ini adalah masalah yang sudah diketahui dan dilacak melalui beberapa Issue di GitHub (#23220, #41731, dll). Namun, karena strategi validasi skema Bedrock adalah perilaku di sisi AWS, sulit bagi Anthropic untuk menyelesaikannya sepenuhnya dari sisi Claude Code. Solusi variabel lingkungan saat ini adalah workaround yang direkomendasikan secara resmi. Dalam jangka panjang, mungkin diperlukan pelonggaran validasi skema atau dukungan field scope dari sisi AWS Bedrock.
Q4: Saya menggunakan Google Vertex AI, apakah akan mengalami masalah yang sama?
Ya. Google Vertex AI juga tidak mendukung field cache_control.scope dan akan memunculkan error serupa. Solusinya sama: atur CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Pengguna Vertex AI juga perlu memperhatikan konfigurasi terkait CLAUDE_CODE_USE_VERTEX=1.
Q5: Apa perbedaan antara –resume dan -c (–continue)? Apakah kondisi pemicu error-nya sama?
--resume/-r: Membuka pemilih sesi untuk memilih sesi riwayat mana pun untuk dipulihkan.--continue/-c: Langsung memulihkan sesi terakhir.
Secara teknis, keduanya memicu pembangunan ulang konteks dan penandaan cache_control, sehingga kondisi pemicu error-nya benar-benar sama. Selama Anda pengguna Bedrock, kedua perintah tersebut berpotensi mengalami error 400 ini.
Q6: Apakah menggunakan LiteLLM sebagai proksi Bedrock masih akan mengalami masalah ini?
Sejak Maret 2026 (PR #22867), LiteLLM telah menyertakan fungsi _remove_scope_from_cache_control yang secara otomatis akan menghapus field scope dari permintaan yang dikirim ke Bedrock dan Azure AI. Jika Anda menggunakan LiteLLM versi terbaru sebagai proksi Bedrock, masalah ini seharusnya sudah tertangani secara otomatis. Namun, sebagai langkah pencegahan, disarankan untuk tetap mengatur CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.
Q7: Apakah ada solusi sempurna tanpa mengurangi fitur apa pun?
Untuk pengguna Bedrock, saat ini tidak ada solusi tanpa kehilangan fitur. Opsi pertama (menonaktifkan Beta) hanya menghilangkan fitur scope baru, dengan dampak paling minimal. Jika ingin menggunakan semua fitur Prompt Caching Claude secara lengkap (termasuk scope), Anda perlu menggunakan API asli Anthropic. Anda dapat mengakses API asli dengan cepat melalui platform APIYI (apiyi.com) tanpa terhambat batasan kompatibilitas Bedrock.
Tabel Cepat Perbaikan Error Claude Code Bedrock
| Operasi | Perintah / Konfigurasi |
|---|---|
| Opsi 1: Nonaktifkan Beta (Direkomendasikan) | export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
| Opsi 2: Nonaktifkan Cache | export DISABLE_PROMPT_CACHING=1 |
| Konfigurasi VS Code / JetBrains | Edit kolom env di ~/.claude/settings.json |
| Verifikasi variabel lingkungan | echo $CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS |
| Uji sesi pemulihan | claude --resume |
| Lihat berkas konfigurasi | cat ~/.claude/settings.json |
| Cek versi Claude Code | claude --version |
| Pelacakan GitHub Issue | anthropics/claude-code#23220 |
Ringkasan
Error cache_control.scope: Extra inputs are not permitted saat menggunakan Claude Code melalui AWS Bedrock disebabkan oleh ketidakcocokan: Bedrock tidak mendukung kolom scope Beta yang ada pada API asli Anthropic.
Cara perbaikan tercepat:
# Di CLI
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
// Di ~/.claude/settings.json (Direkomendasikan, berlaku untuk semua platform)
{
"env": {
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
}
}
Tiga poin penting untuk diingat:
- Ini bukan kesalahan Anda—ini adalah perbedaan fitur antara Bedrock dan API Anthropic.
- Pengguna VS Code wajib menyetelnya di settings.json—variabel lingkungan shell tidak akan terbaca oleh ekstensi VS Code.
--resumebukan penyebab utama—semua pemanggilan Bedrock bisa memicu error ini,--resumehanya membuatnya lebih sering muncul.
Jika Anda tidak ingin pusing dengan masalah kompatibilitas Bedrock, beralih ke API asli Anthropic adalah solusi permanen. Melalui APIYI (apiyi.com), Anda bisa mengakses API Claude asli dengan cepat, mendukung semua fitur secara penuh tanpa perlu infrastruktur AWS.
Penulis: Tim Teknis APIYI
Diskusi Teknis: Kunjungi APIYI di apiyi.com untuk tutorial penggunaan Claude Code dan dukungan teknis lainnya
Tanggal Pembaruan: April 2026
Versi yang Berlaku: Claude Code v2.1.24+, AWS Bedrock
Referensi:
- GitHub Issue #23220: Error cache_control.scope pada Claude Code v2.1.24+
- Tautan:
github.com/anthropics/claude-code/issues/23220
- Tautan:
- GitHub Issue #41731: Ekstensi VS Code mengirim kolom scope yang tidak didukung
- Tautan:
github.com/anthropics/claude-code/issues/41731
- Tautan:
- Dokumentasi Prompt Caching AWS Bedrock:
- Tautan:
docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html
- Tautan:
- Dokumentasi Prompt Caching Anthropic:
- Tautan:
docs.anthropic.com/en/docs/build-with-claude/prompt-caching
- Tautan:
- Dokumentasi Resmi Claude Code di Amazon Bedrock:
- Tautan:
docs.anthropic.com/en/docs/claude-code/bedrock
- Tautan:
