GPT-6 Astra is now live on CometAPI →
technology/Riset CometAPI

Kesalahan CometAPI 401, 404, 429, dan 5xx: Coba lagi atau gagal?

Tentukan kapan error CometAPI 401, 404, 429, dan 5xx harus gagal, dicoba ulang dengan backoff, atau memicu fallback model otomatis.

CometAPI
Bobby SpencerTim riset model AI dan API
Diperbarui Sep 4, 2026 8 menit baca
Kesalahan CometAPI 401, 404, 429, dan 5xx: Coba lagi atau gagal?
Gunakan pola ini

Lakukan API call pertama.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

Jawaban singkat: jangan beralih dari Claude ke GPT untuk setiap permintaan yang gagal. 401 berarti autentikasi harus diperbaiki, dan 404 terkait path berarti URL atau endpoint harus dikoreksi. 429 atau 5xx sementara dapat dicoba ulang dengan backoff; jika percobaan ulang yang dibatasi tetap gagal, model fallback yang kompatibel boleh mengambil alih.

Ada satu pengecualian penting: respons 500 dengan error.code: invalid_request tetap merupakan masalah pada permintaan. Mencoba ulang—atau mengirim payload yang sama yang rusak ke model lain—hanya akan menyembunyikan bug.

Artikel ini diverifikasi pada 20 Agustus 2026 terhadap dokumentasi error, retry, base URL, rate limit, dan model fallback CometAPI. Artikel ini hanya membahas klasifikasi error. Untuk desain rute, kredensial penyedia, dan failover berlapis, gunakan tutorial fallback model lengkap dan panduan fallback teknis.

Mulai dengan Keputusan Retry atau Gagal

StatusBiasanya berartiCoba ulang?Fallback?Tindakan pertama
401Kunci hilang atau tidak validTidakTidakPerbaiki bearer token
404Path atau endpoint salahTidakTidakPeriksa URL dasar dan rute
429Batas laju atau saturasiYaSetelah retry terbatasLakukan backoff dengan jitter
500 + invalid_requestPermintaan tidak validTidakTidakPerbaiki payload
500/503/504/524Kegagalan sementara platform/penyediaYaSetelah retry terbatasSimpan request ID

Pertanyaan praktisnya bukan “Apakah Claude gagal?” melainkan “Mungkinkah model lain berhasil tanpa mengubah bagian permintaan yang tidak valid?” Error autentikasi dan path memengaruhi koneksi itu sendiri, sehingga mengganti model tidak dapat menyelesaikannya. Kegagalan kapasitas sementara dan server mungkin spesifik rute, sehingga fallback bisa membantu.

Baca Error Sebelum Anda Mengganti Model

Gunakan status HTTP bersama error.code dan error.message. Banyak kegagalan CometAPI menggunakan pembungkus seperti ini:

{
  "error": {
    "message": "human-readable detail and request id",
    "type": "comet_api_error",
    "param": "problematic_parameter_or_empty",
    "code": "error_code_or_empty"
  }
}

Jangan mengklasifikasikan hanya berdasarkan digit pertama kode status. 500 masih bisa membawa invalid_request, sementara path CometAPI yang salah dapat mengembalikan redirect atau HTML alih-alih 404 JSON yang bersih.

401 Unauthorized: Hentikan dan Perbaiki Otentikasi

401 biasanya berarti kunci API hilang, salah format, kedaluwarsa, atau dimuat dari lingkungan yang salah. Header harus:

Authorization: Bearer $COMETAPI_KEY

Jangan retry dan jangan ganti model. Kedua rute menggunakan autentikasi yang sama-sama rusak. Periksa apakah layanan yang dideploy memuat secret lama, apakah ada whitespace yang ditambahkan ke kunci, dan apakah permintaan mencapai lingkungan yang dimaksud. Putar atau muat ulang kunci hanya melalui proses manajemen secret Anda.

404 Not Found: Perbaiki URL Sebelum Fallback

Untuk permintaan yang kompatibel dengan OpenAI, gunakan URL dasar ini persis:

https://api.cometapi.com/v1

/v1 yang hilang, segmen path yang terduplikasi, atau endpoint yang salah dapat menghasilkan 404, redirect, respons HTML, atau error parsing SDK. Nonaktifkan pengikut redirect otomatis saat debugging dan konfirmasikan path permintaan final terhadap referensi API.

Jika respons secara eksplisit menyatakan model tidak tersedia atau tidak ditemukan, verifikasi ID model di CometAPI Models API yang terkini. Jangan perlakukan setiap 404 sebagai ketidaktersediaan model. Tambahkan fallback khusus model hanya setelah Anda menangkap dan menguji sinyal tersebut.

429 Too Many Requests: Lakukan Backoff Sebelum Failover

429 dapat dicoba ulang. Gunakan exponential backoff dengan jitter, turunkan konkurensi burst, dan ukur rute mana yang mengalami saturasi. Retry langsung dari setiap worker dapat mengubah batas laju singkat menjadi lonjakan trafik yang lebih besar.

Setelah jumlah kecil retry yang dibatasi, fallback bisa tepat ketika model berikutnya mendukung input yang sama, kontrak output yang sama, dan kapabilitas yang diperlukan. Fallback tidak gratis: ini menambah latensi dan dapat mengubah biaya atau perilaku, jadi catat seberapa sering fallback digunakan.

Error 5xx: Periksa Kode, Lalu Coba Ulang

500, 503, 504, dan 524 umumnya merepresentasikan kegagalan platform, penyedia, atau kelas timeout. Simpan request ID, endpoint, model, dan timestamp, lalu retry dengan backoff. Jika kegagalan sementara yang sama bertahan melewati batas retry, beralihlah ke rute kompatibel berikutnya.

Namun, periksa body terlebih dahulu. Ketika 500 memuat error.code: invalid_request atau invalid_request_error, perbaiki body permintaan dan retry hanya setelah ada perubahan. Penyebab umum termasuk field messages yang hilang atau parameter spesifik penyedia yang tidak diterima oleh endpoint yang dipilih.

Gunakan Satu Kebijakan Sederhana di Kode

Contoh Python ini menjaga retry dan fallback di dalam aplikasi. Ia menggunakan satu kunci CometAPI, base URL yang kompatibel dengan OpenAI, dan variabel lingkungan untuk ID model Claude dan GPT saat ini. Ia hanya mencoba ulang kegagalan sementara, lalu mengganti model setelah batas retry habis.

import os, random, time
from openai import APIError, OpenAI

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
    max_retries=0,
)
MODELS = [os.environ["CLAUDE_MODEL"], os.environ["GPT_MODEL"]]
RETRYABLE = {429, 500, 503, 504, 524}

def complete(messages):
    for model in MODELS:
        for attempt in range(3):
            try:
                response = client.chat.completions.create(model=model, messages=messages)
                return response.choices[0].message.content
            except APIError as error:
                status = getattr(error, "status_code", None)
                code = getattr(error, "code", None)
                if status in {401, 404} or code in {
                    "invalid_request", "invalid_request_error"
                }:
                    raise
                if status not in RETRYABLE:
                    raise
                if attempt < 2:
                    time.sleep(2**attempt + random.random())
                    continue
                break
    raise RuntimeError("No configured route completed.")

print(complete([{"role": "user", "content": "Summarize this ticket."}]))

Retry otomatis SDK dinonaktifkan sehingga aplikasi yang mengendalikan total anggaran retry dan fallback. Tanpa kontrol itu, retry SDK ditambah retry aplikasi dapat melipatgandakan panggilan dan menunda respons final.

Uji Kebijakan Tanpa Menebak

Sinyal simulasiHasil yang diharapkanYang tidak boleh terjadi
401Segera raiseTidak ada retry dan tidak ada panggilan GPT
404Segera raiseTidak ada fallback yang menyembunyikan path buruk
429Backoff, lalu fallbackTidak ada badai retry langsung
500 + invalid_requestSegera raiseTidak ada duplikasi permintaan rusak
503/504/524Backoff, lalu fallbackTidak ada rantai rute tak terbatas

Ini adalah pengujian kebijakan, bukan klaim tentang reliabilitas penyedia live. Di staging, injeksikan status dan body error ke dalam pengklasifikasi, verifikasi jumlah dan urutan panggilan, dan konfirmasikan bahwa error final Anda masih memuat konteks permintaan asli.

Kapan Fallback Claude-ke-GPT Benar-Benar Aman

Beralih keluarga model aman hanya ketika kedua rute dapat memenuhi kontrak aplikasi yang sama. Normalisasikan field permintaan dan respons, uji output terstruktur atau perilaku tool pada kedua model, dan verifikasi kapabilitas gambar, dokumen, konteks, atau penalaran yang diperlukan sebelum mengaktifkan rute.

Fallback juga harus menghormati efek samping. Jika rute pertama sudah memicu tool, menulis data, atau melakukan streaming respons parsial, mengulang permintaan secara membabi buta dapat menggandakan tindakan atau membingungkan pengguna. Lanjutkan dari checkpoint atau kembalikan kegagalan terkontrol sebagai gantinya.

Pemeriksaan Produksi yang Menjaga Retry Tetap Terbatas

  • Tetapkan satu anggaran latensi total. Hitung setiap retry dan upaya fallback terhadap tenggat yang sama.
  • Batasi retry. Gunakan backoff dengan jitter dan hentikan setelah batas kecil yang dikonfigurasi.
  • Kendalikan konkurensi. Kurangi lonjakan sebelum permintaan meninggalkan aplikasi.
  • Tambahkan circuit breaker. Hentikan sementara pemanggilan rute yang berulang kali gagal.
  • Catat keputusan. Tangkap status, kode error, request ID, model, percobaan, penundaan, dan alasan fallback tanpa menyimpan secret.
  • Lacak tingkat fallback. Peningkatan yang berkelanjutan adalah sinyal operasional, bukan metrik keberhasilan normal.

Pertanyaan yang Sering Diajukan

Haruskah 401 memicu fallback model?

Tidak. Perbaiki atau muat ulang kunci API. Model lain yang dipanggil melalui kredensial yang sama tidak valid akan gagal karena alasan yang sama.

Haruskah 404 memicu fallback?

Tidak secara default. Perbaiki terlebih dahulu URL dasar atau endpoint. Hanya sinyal ketidaktersediaan model yang telah diverifikasi secara terpisah yang boleh masuk ke pengklasifikasi fallback.

Berapa kali sebaiknya saya retry 429?

Gunakan batas kecil yang ditentukan aplikasi dan sesuai dengan anggaran latensi yang dihadapi pengguna. Lakukan backoff dengan jitter dan kurangi konkurensi; jangan retry segera atau tanpa batas.

Apakah semua error 5xx dapat di-retry?

Tidak. Respons 500, 503, 504, dan 524 yang bersifat sementara adalah kandidat retry, tetapi 500 dengan invalid_request harus gagal keras sampai payload diperbaiki.

Bisakah Claude dan GPT menggunakan permintaan yang sama tanpa perubahan?

Hanya untuk field bersama yang telah diuji oleh aplikasi Anda. Parameter spesifik penyedia, format tool, output terstruktur, dan input multimodal mungkin memerlukan adaptor. Mengubah ID model saja tidak membuktikan kompatibilitas.

Di mana implementasi fallback lengkapnya?

Lihat How to Build Robust LLM Model Fallback Strategies untuk arsitektur yang lebih luas, dan panduan model fallback CometAPI untuk detail implementasi.

Jadikan Pengklasifikasi Error sebagai Penjaga Gerbang

Fallback otomatis berguna ketika sempit dan teramati. Biarkan error autentikasi, path, dan permintaan tidak valid gagal dengan jelas. Retry batas laju dan kegagalan server sementara dengan backoff, lalu pindah ke rute yang kompatibel hanya setelah anggaran retry habis. Kebijakan itu menjadikan fallback sebagai kontrol reliabilitas alih-alih cara menyembunyikan bug konfigurasi.

Sumber

Lanjut belajar

Hubungkan artikel ini ke keputusan berikutnya.

Lihat semua topik
Dipublikasikan pada Sep 3, 2026
Terakhir diperbarui Sep 4, 2026
4 tampilan
Ditinjau untuk kejelasan, atribusi sumber, dan terminologi API terkini.

Siap memangkas biaya pengembangan AI hingga 20%?

Mulai gratis dalam beberapa menit. Kredit uji coba gratis disertakan. Tidak perlu kartu kredit.

Baca Selengkapnya