Tool Integrations22 September 2026Flatkey Team

Error Claude Code ANTHROPIC_AUTH_TOKEN: Perbaikan Konfigurasi Lengkap

Panduan troubleshooting lengkap untuk Claude Code ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL, /status, VS Code, GitHub Actions, dan error gateway 401.

Error Claude Code ANTHROPIC_AUTH_TOKEN: Perbaikan Konfigurasi Lengkap

Ketika Error Claude Code ANTHROPIC_AUTH_TOKEN: Perbaikan Konfigurasi Lengkap menjadi kueri, perbaikannya biasanya dimulai dengan satu pertanyaan: apakah Claude Code mengirim kredensial di header yang benar-benar dibaca gateway Anda?

Untuk routing gateway Claude Code, ANTHROPIC_AUTH_TOKEN mengirim Authorization: Bearer .... ANTHROPIC_API_KEY mengirim x-api-key: .... Token di variabel yang salah bisa terlihat seperti kunci yang buruk, login yang kedaluwarsa, atau gateway yang rusak, padahal nilainya sendiri valid.

Gunakan runbook ini ketika Claude Code gagal setelah Anda menyetel ANTHROPIC_AUTH_TOKEN, ANTHROPIC_BASE_URL, file pengaturan Claude Code, ekstensi VS Code, atau workflow CI.

Perbaikan cepat

Mulailah dengan diagnosis sekecil mungkin sebelum mengedit setiap file pengaturan di mesin Anda.

  1. Pilih satu variabel kredensial.
  2. Ekspor base URL gateway dan kredensial itu di shell yang sama.
  3. Jalankan permintaan curl satu token ke $ANTHROPIC_BASE_URL/v1/messages.
  4. Mulai Claude Code dari shell yang sama.
  5. Jalankan /status dan pastikan Anthropic base URL serta sumber kredensial yang diharapkan muncul.
  6. Jika curl berhasil tetapi Claude Code masih meminta Anda untuk masuk, pindahkan kredensial ke lokasi yang dibaca Claude Code sebelum penyiapan awal, seperti ~/.claude/settings.json, ekspor shell, atau pengaturan terkelola.

Untuk gateway token bearer:

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "replace-with-a-gateway-supported-claude-model",
    "max_tokens": 1,
    "messages": [{"role": "user", "content": "."}]
  }'

Untuk gateway x-api-key:

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_API_KEY="REPLACE_WITH_GATEWAY_KEY"

curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "replace-with-a-gateway-supported-claude-model",
    "max_tokens": 1,
    "messages": [{"role": "user", "content": "."}]
  }'

Respons JSON dengan id pesan dan content berarti URL dan kredensial berfungsi. 401 berarti gateway menolak kredensial atau menerimanya di header yang tidak dibacanya.

Daftar periksa Error Claude Code ANTHROPIC_AUTH_TOKEN: Perbaikan Konfigurasi Lengkap

Gunakan tabel ini sebagai diagnostik kerja. Jangan rotasi kunci sampai variabel aktif, header, dan prioritas pengaturan diketahui.

GejalaPenyebab paling mungkinPerbaikan
401 token tidak valid atau tidak dikenaliKredensial dicabut, salah ketik, atau dikirim di header yang salahJika gateway mengharapkan auth bearer, gunakan ANTHROPIC_AUTH_TOKEN. Jika mengharapkan x-api-key, gunakan ANTHROPIC_API_KEY. Regenerasi hanya setelah header benar.
Peringatan saat startup menyatakan dua sumber kredensial aktifKredensial gateway dan login Claude yang tersimpan atau API key keduanya aktifPilih satu jalur. Hapus variabel gateway untuk menggunakan login yang tersimpan, atau jalankan /logout dan pertahankan hanya kredensial gateway.
/status tidak memiliki baris Anthropic base URLANTHROPIC_BASE_URL tidak পৌঁরে ke proses Claude CodeJalankan claude dari shell yang sama, pindahkan variabel ke ~/.claude/settings.json, atau konfigurasikan permukaan yang sebenarnya Anda gunakan.
Curl berfungsi, Claude Code meminta Anda untuk loginCLI memiliki base URL yang dapat dijangkau tetapi tidak ada kredensial yang tersedia sebelum penyiapan pertama kaliLetakkan ANTHROPIC_AUTH_TOKEN di export shell, pengaturan pengguna, atau pengaturan terkelola yang dibaca Claude Code sebelum wizard.
ANTHROPIC_API_KEY disetel tetapi diabaikanClaude Code interaktif memerlukan persetujuan satu kali untuk API key kustom, atau key sebelumnya ditolakAktifkan di bawah /config dengan Use custom API key.
Respons kosong atau tidak valid dengan HTTP 200Gateway atau proxy mengembalikan HTML, halaman login, atau respons non-API lainnyaJalankan permintaan curl dan perbaiki rute yang membalas dengan JSON non-Claude API.
Kesalahan DNS, firewall, atau connection refusedTidak ada yang dapat dijangkau yang menjawab di ANTHROPIC_BASE_URLKonfirmasi akses DNS, VPN, proxy, dan firewall ke host gateway.
400 menyebut context_management, Extra inputs are not permitted, atau field skema toolGateway meneruskan permintaan Claude Code berformat Anthropic ke upstream yang menolak field yang dikirim Claude CodeTeruskan field yang kompatibel ke depan dengan benar, gunakan rute khusus penyedia, atau sementara set CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 bila sesuai.
400 menyebut thinking atau adaptiveBuild model upstream tidak menerima penalaran adaptifUpgrade upstream atau gunakan workaround CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 yang didokumentasikan untuk kasus Claude 4.6 yang didukung.
/fast gagal sementara inferensi berfungsiPemeriksaan mode cepat dapat langsung pergi ke Anthropic alih-alih mengikuti URL gatewayAnggap ini terpisah dari perutean pesan; izinkan pemeriksaan langsung atau gunakan variabel skip yang didokumentasikan bila berlaku.
Kesalahan sertifikat saat curl berfungsiRuntime Claude Code mempercayai bundle CA yang berbeda dari curlSet NODE_EXTRA_CA_CERTS ke path bundle CA korporat.

Pilih ANTHROPIC_AUTH_TOKEN atau ANTHROPIC_API_KEY

ANTHROPIC_AUTH_TOKEN adalah untuk bearer token. Claude Code mengirimkannya sebagai:

Authorization: Bearer <token>

ANTHROPIC_API_KEY digunakan untuk API key. Claude Code mengirimkannya sebagai:

x-api-key: <key>

Jika tim gateway Anda hanya menyebut "token" atau "Authorization header," mulai dengan ANTHROPIC_AUTH_TOKEN. Jika mereka menyebut "API key" atau "x-api-key," gunakan ANTHROPIC_API_KEY. Jika Anda menebak dan menerima 401, ganti variabel sebelum memutar ulang kunci.

Jangan set keduanya selama proses troubleshooting. Itulah bagaimana Claude Code ANTHROPIC_AUTH_TOKEN Errors: Complete Configuration Fixes berubah dari masalah autentikasi menjadi masalah prioritas autentikasi.

Tempatkan variabel di lokasi yang benar-benar dibaca Claude Code

Ekspor shell bagus untuk pengujian pertama karena mudah di-unset:

export ANTHROPIC_BASE_URL="https://llm-gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="REPLACE_WITH_GATEWAY_TOKEN"
claude

Variabel tersebut hanya berlaku untuk sesi terminal itu dan program yang diluncurkan darinya. Jika Anda membuka VS Code, aplikasi desktop, atau agen latar belakang dari tempat lain, ekspor tersebut mungkin tidak terlihat.

Untuk pengaturan CLI tingkat pengguna yang persisten, gunakan ~/.claude/settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
    "ANTHROPIC_AUTH_TOKEN": "REPLACE_WITH_GATEWAY_TOKEN"
  }
}

Untuk satu proyek, gunakan .claude/settings.local.json dan pastikan file tersebut masuk gitignore sebelum menambahkan kredensial. Jangan menaruh kredensial di .claude/settings.json, karena file itu dimaksudkan untuk dibagikan dengan repo.

Ketika ekspor shell dan blok env di file settings menetapkan variabel yang sama, Claude Code menggunakan nilai dari file settings. Itulah sebabnya /status adalah sumber kebenaran yang lebih baik daripada echo $ANTHROPIC_AUTH_TOKEN.

Perbaiki ekstensi VS Code

Ekstensi Claude Code VS Code memiliki pemeriksaan peluncurannya sendiri. Konfigurasikan variabel gateway di pengaturan pengguna VS Code di bawah claudeCode.environmentVariables:

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://llm-gateway.example.com" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "REPLACE_WITH_GATEWAY_TOKEN" }
  ]
}

Gunakan perintah VS Code Preferences: Open User Settings (JSON). Lalu mulai ulang sesi ekstensi dan jalankan /status. Jika ekstensi masih meminta login, berarti kredensial tidak terlihat pada pemeriksaan login miliknya sendiri.

Perbaiki GitHub Actions

Claude Code GitHub Actions membaca ANTHROPIC_BASE_URL dari blok env workflow. Untuk gateway x-api-key, teruskan kunci gateway sebagai input action:

env:
  ANTHROPIC_BASE_URL: https://llm-gateway.example.com

steps:
  - uses: anthropics/claude-code-action@v1
    with:
      anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

Untuk gateway bearer-token, action tersebut tetap memerlukan anthropic_api_key untuk memenuhi pemeriksaan peluncurannya, sementara ANTHROPIC_AUTH_TOKEN adalah nilai yang dikirim Claude Code sebagai Authorization: Bearer:

env:
  ANTHROPIC_BASE_URL: https://llm-gateway.example.com
  ANTHROPIC_AUTH_TOKEN: ${{ secrets.GATEWAY_API_KEY }}

steps:
  - uses: anthropics/claude-code-action@v1
    with:
      anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

Simpan nilai-nilai tersebut di GitHub Secrets. Jangan tempelkan kredensial gateway ke log workflow, komentar issue, atau file yang di-commit.

Gunakan /status sebagai pengecekan kebenaran

Setelah perubahan konfigurasi apa pun, jalankan:

/status

Untuk gateway format Anthropic, tab Status seharusnya menampilkan:

Anthropic base URL: https://llm-gateway.example.com
Auth token: ANTHROPIC_AUTH_TOKEN

atau:

Anthropic base URL: https://llm-gateway.example.com
API key: ANTHROPIC_API_KEY

Jika baris base URL tidak ada, ANTHROPIC_BASE_URL tidak পৌঁ reach ke sesi. Jika sumber kredensial adalah login yang tersimpan, Claude Code tidak menggunakan kredensial gateway. Jika keduanya terlihat benar dan pesan masih gagal, masalahnya sekarang kemungkinan ada di routing gateway, kompatibilitas upstream, perilaku proxy, atau kepercayaan sertifikat.

Catatan Flatkey untuk routing gateway Claude Code

Flatkey berguna dalam dua alur kerja Claude Code yang berbeda, dan perbedaannya penting.

Untuk panggilan model yang kompatibel dengan OpenAI dari sebuah project atau agent skill, base URL Flatkey adalah:

https://router.flatkey.ai/v1

Untuk jalur gateway milik Claude Code sendiri, ikuti penyiapan gateway format Anthropic Messages dan jangan tambahkan /v1 ke ANTHROPIC_BASE_URL kecuali instruksi Claude Code dari gateway tersebut secara eksplisit memintanya. Pola penyedia yang umum adalah:

export ANTHROPIC_BASE_URL="https://router.flatkey.ai"
export ANTHROPIC_API_KEY="$FLATKEY_API_KEY"

Kemudian jalankan /status, kirim prompt singkat, dan periksa ledger atau log gateway. Pisahkan penyiapan Claude Code SKILL.md dari jalur ini: sebuah skill mengajarkan Claude Code cara memanggil model dan alat yang didukung Flatkey dari repo Anda; routing gateway mengontrol ke mana Claude Code mengirim traffic Claude-family miliknya sendiri.

Jika Anda menstandarkan traffic agent di seluruh penyedia, pasangkan artikel ini dengan panduan Claude API proxy vs multi-model router dan quickstart Flatkey API.

Pengecekan operator gateway ketika token bukan masalah sebenarnya

Beberapa pencarian Claude Code ANTHROPIC_AUTH_TOKEN Errors: Complete Configuration Fixes dimulai sebagai masalah konfigurasi lokal dan berakhir di gateway. Jika curl satu token terautentikasi dan /status terlihat benar, periksa kondisi di sisi gateway berikut:

Pemeriksaan gatewayMengapa ini penting
Sajikan format Anthropic Messages di /v1/messagesANTHROPIC_BASE_URL membuat Claude Code memperlakukan gateway sebagai endpoint berformat Anthropic.
Teruskan anthropic-version dan anthropic-beta tanpa perubahanKapabilitas Claude Code berubah antar rilis; allowlist statis bisa merusak permintaan berikutnya.
Pertahankan perilaku streaming dan keep-aliveBuffering atau menghapus byte stream dapat membuat Claude Code macet.
Teruskan body error tanpa modifikasiClaude Code menggunakan wording error dari upstream untuk beberapa jalur pemulihan.
Hindari mengembalikan HTML dengan HTTP 200Claude Code mengharapkan respons JSON API Claude atau event-stream, bukan halaman login browser.
Kelompokkan /v1/messages dari aturan WAF body requestPrompt Claude Code dapat berisi tag bergaya XML dan kode sumber yang memicu filter body generik.
Kembalikan header retry yang bergunaretry-after dan x-should-retry memengaruhi perilaku retry.

Jika gateway Anda berada di depan provider yang tidak menerima bentuk request Anthropic Messages lengkap, gunakan variabel khusus provider sebagai pengganti ANTHROPIC_BASE_URL, atau jembatani skema di dalam gateway. Jangan menghapus field secara membabi buta; itu hanya menukar satu error yang terlihat dengan kegagalan kapabilitas yang muncul belakangan.

Catatan debug yang bisa disalin

Gunakan catatan ini saat menyerahkan masalah ke rekan tim atau operator gateway:

claude_code_auth_debug:
  date_checked: 2026-09-22
  surface: cli # cli | vscode | github_actions | agent_sdk | desktop
  claude_code_version: ""
  expected_gateway_base_url: "https://llm-gateway.example.com"
  variable_used: "ANTHROPIC_AUTH_TOKEN"
  expected_header: "Authorization: Bearer"
  status_tab_base_url_seen: false
  status_tab_credential_source: ""
  curl_status_code: ""
  curl_response_shape: "json_message | 401 | html_200 | dns_error | tls_error | other"
  settings_files_checked:
    - "~/.claude/settings.json"
    - ".claude/settings.local.json"
    - ".claude/settings.json"
  shell_started_claude: false
  saved_login_present: unknown
  gateway_logs_received_request: unknown
  suspected_fix: ""

Catatan itu memaksa investigasi untuk memisahkan tiga hal: di mana Claude Code membaca konfigurasi, header mana yang dikirim, dan apa yang dikembalikan gateway.

Pertanyaan yang sering diajukan

Haruskah saya menggunakan ANTHROPIC_AUTH_TOKEN atau ANTHROPIC_API_KEY?

Gunakan ANTHROPIC_AUTH_TOKEN ketika gateway mengharapkan bearer token atau header Authorization. Gunakan ANTHROPIC_API_KEY ketika gateway mengharapkan x-api-key. Jika Anda tidak tahu, mulai dengan ANTHROPIC_AUTH_TOKEN, verifikasi dengan request curl, dan ganti jika Anda menerima 401.

Mengapa /status tidak menampilkan base URL saya?

ANTHROPIC_BASE_URL tidak sampai ke proses Claude Code. Jalankan claude dari shell yang sama, pindahkan nilainya ke file settings yang benar, atau konfigurasi surface yang Anda gunakan, seperti pengaturan VS Code atau env GitHub Actions.

Mengapa curl berfungsi tetapi Claude Code masih meminta saya untuk login?

URL dasar dapat dijangkau, tetapi Claude Code tidak memiliki kredensial yang tersedia pada saat dibutuhkan. Letakkan ANTHROPIC_AUTH_TOKEN atau variabel kredensial yang benar di export shell, pengaturan pengguna, atau pengaturan terkelola yang dibaca Claude Code sebelum penyiapan awal.

Bisakah saya menaruh token di .claude/settings.json?

Jangan taruh rahasia di .claude/settings.json karena itu adalah file proyek bersama. Gunakan ~/.claude/settings.json, .claude/settings.local.json, pengaturan terkelola, secret manager, atau rahasia CI.

Apakah ANTHROPIC_AUTH_TOKEN mengarahkan Claude Code ke model non-Claude?

Tidak. Itu hanya mengubah cara Claude Code melakukan autentikasi ke gateway berformat Anthropic yang dikonfigurasi. Gateway mungkin meneruskan atau menjembatani permintaan sesuai implementasinya sendiri, tetapi Claude Code tetap mengharapkan bentuk API Claude pada jalur ANTHROPIC_BASE_URL.

Apa verifikasi akhir yang paling aman?

Jalankan permintaan curl satu-token, mulai Claude Code dari permukaan yang dikonfigurasi, jalankan /status, kirim prompt singkat, dan konfirmasi buku besar gateway atau log menampilkan permintaan tersebut. Pemeriksaan empat langkah itu adalah perbaikan yang tahan lama di balik Error Claude Code ANTHROPIC_AUTH_TOKEN: Perbaikan Konfigurasi Lengkap.

Sumber yang diperiksa

  • Dokumentasi Anthropic Claude Code: Menghubungkan Claude Code ke gateway LLM, diakses 2026-09-22.
  • Dokumentasi Anthropic Claude Code: File pengaturan dan prioritas, diakses 2026-09-22.
  • Dokumentasi Anthropic Claude Code: Panduan kompatibilitas gateway Claude Code, diakses 2026-09-22.
  • Claude Help Center: Mengelola variabel lingkungan API key di Claude Code, diakses 2026-09-22.
  • SKILL.md publik Flatkey, diakses 2026-09-22.
  • Basis pengetahuan Flatkey: Ikhtisar Produk, Strategi Pemasaran, Suara Merek.