ID model tidak portabel: api.anthropic.com menginginkan ID bertanggal, Gemini menginginkan string versinya sendiri, dan setiap gateway menentukan slug-nya sendiri. 404 di sini berarti "host ini tidak memiliki model dengan string persis tersebut" — solusinya selalu menanyakan kepada endpoint model apa yang disediakannya.
Error
{
"error": {
"type": "model_not_found",
"message": "The model 'claude-sonnet' does not exist or you do not have access to it.",
"code": "model_not_found"
}
}Ringkasan penyebab dan perbaikan
| Penyebab | Perbaikan |
|---|---|
| ID model dari host lain | Setiap API memiliki namespace sendiri — salin ID dari daftar model endpoint itu sendiri, bukan dari postingan blog. |
| Versi yang tidak digunakan lagi/diubah namanya | Penyedia menghentikan snapshot bertanggal; gunakan ID terkini dan ikuti catatan penghentian. |
| Slug salah ketik atau terpotong | claude-sonnet bukan model di mana pun; string yang tepat penting. |
| Model ada, tetapi dinonaktifkan untuk kunci/paket Anda | Beberapa host membatasi model berdasarkan paket — endpoint daftar menunjukkan model yang dapat dipanggil oleh kunci ANDA. |
Cantumkan model dari endpoint yang Anda panggil
GET /v1/models adalah sumber kebenaran di host kompatibel OpenAI mana pun — endpoint ini mengembalikan persis ID yang dapat digunakan kunci Anda:
curl -s https://api.kunavo.com/v1/models \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
| python3 -c "import json,sys; print('\n'.join(m['id'] for m in json.load(sys.stdin)['data']))"Atasi model saat runtime, bukan dengan hardcode
Katalog berubah (snapshot baru, penghentian model). Ambil daftar model saat aplikasi mulai berjalan, prioritaskan slug yang dikonfigurasi dengan opsi cadangan, dan beri peringatan saat slug yang dikonfigurasi menghilang dari /v1/models, alih-alih menghasilkan 404 di lingkungan produksi.
Jika Anda melakukan panggilan melalui Kunavo
Kunavo menggunakan slug stabil yang mudah dibaca manusia (claude-sonnet-5, gpt-5-6-terra, claude-fable-5) yang tercantum di GET /v1/models bersama metadata per model, dan slug yang dihentikan dialihkan 301 ke penggantinya di halaman model situs agar tautan tidak rusak. Endpoint daftar adalah sumber otoritatif — llms.txt menyatakan hal yang sama kepada agen mana pun yang membacanya.
Pertanyaan umum
Mengapa ID model yang sama berfungsi di satu API tetapi 404 di API lain?
Karena ID memiliki namespace per host: ID bertanggal Anthropic, nama berversi Gemini, dan slug setiap gateway semuanya merupakan string berbeda untuk model terkait. Selalu salin dari daftar model endpoint target itu sendiri.
Bagaimana cara melindungi sistem dari penghentian model di masa mendatang?
Atasi /v1/models saat startup, simpan ID model dalam konfigurasi (bukan kode), tentukan rantai fallback, dan beri peringatan saat ID yang dikonfigurasi menghilang — ini mengubah 404 produksi menjadi perubahan konfigurasi.
Panduan terkait
Detail semantik error lainnya tersedia di referensi error; mendapatkan kunci hanya perlu satu menit melalui pendaftaran dan panduan autentikasi.