Reliability and RoutingJuly 15, 2026Big Y

Taksonomi Error LLM Gateway: Pisahkan Kegagalan Auth, Kuota, Provider, dan Safety

Playbook keandalan produksi untuk mengklasifikasikan kegagalan gateway LLM ke dalam jalur auth, kuota, provider, request, safety, dan pembatalan sebelum retry atau fallback.

Taksonomi Error LLM Gateway: Pisahkan Kegagalan Auth, Kuota, Provider, dan Safety

Taksonomi error LLM gateway adalah pembeda antara insiden yang terkendali dan badai retry yang mahal. Sebuah gateway tidak seharusnya memperlakukan setiap panggilan model yang gagal sebagai jenis error provider yang sama. Kredensial yang tidak valid, kuota yang habis, overload provider, request yang salah format, penolakan safety, timeout, dan cancel dari client semuanya memerlukan jalur pemulihan yang berbeda.

Kesalahan umum adalah mengirim setiap kegagalan ke dalam loop retry dan fallback yang sama. Itu bisa menyembunyikan key yang dicabut, menghabiskan batas belanja, merutekan konten yang tidak aman ke provider lain, atau menggandakan pekerjaan setelah respons streaming sudah mulai. Taksonomi error LLM gateway yang praktis memberi tim engineering, product, dan finance satu bahasa bersama untuk menjelaskan apa yang terjadi dan apa yang harus dilakukan gateway selanjutnya.

Flatkey cocok dengan model operasional ini karena situs publiknya saat ini memposisikan produk sebagai satu permukaan gateway untuk akses model, routing, billing, analitik penggunaan, dan kontrol operasional. Gunakan permukaan bersama itu untuk mengklasifikasikan kegagalan sebelum memilih perilaku retry, antre, fallback, atau fail-closed.

Taksonomi error LLM gateway dalam satu tabel

Mulailah dari kelasnya, bukan hanya status HTTP. Keluarga status yang sama bisa berarti hal yang berbeda di berbagai provider, SDK, dan bentuk endpoint.

Kelas error Sinyal umum Retry? Fallback? Tindakan pemilik
Auth dan permission 401, 403, key tidak valid, key dicabut, project salah, IP tidak diotorisasi, permission ditolak Tidak ada retry otomatis Tidak Rotasi atau perbaiki kredensial, project, allowlist, atau permission
Kuota dan rate limit 429, rate limit, kuota habis, batas spend, batas token/request, RESOURCE_EXHAUSTED Terkadang, dengan backoff terbatas atau antrean Hanya di dalam aturan biaya dan kualitas yang disetujui Kurangi concurrency, cek penggunaan, tingkatkan limit, atau hentikan spend
Provider dan transport 500, 503, 529, overload, timeout, connection reset, error koneksi SDK Terkadang, jika idempotent dan masih dalam deadline Terkadang, sebelum output parsial dan dalam kontrak Cek status provider, kesehatan routing, anggaran timeout, dan amplifikasi retry
Request dan validasi 400, 422, JSON salah format, model tidak valid, parameter tidak didukung, context terlalu panjang Tidak, kecuali request diubah Jarang Perbaiki schema, ukuran prompt, bentuk endpoint, atau kapabilitas model
Safety dan policy refusal, block moderation, prompt block, finishReason: SAFETY, error content policy Tidak ada retry otomatis Tidak ada fallback untuk bypass Tampilkan pesan aman kepada user, log konteks safety, minta input revisi bila sesuai
Cancel client dan deadline abort user, timeout client, deadline server, stream terputus Jangan blind retry Hanya jika belum ada output atau efek samping yang dikomit Hentikan pekerjaan, tandai pembatalan, pertahankan state output parsial

Taksonomi error LLM gateway ini sengaja berorientasi pada tindakan. Ini bukan hanya memberi label error untuk dashboard. Ini memutuskan kapan sistem boleh menghabiskan lebih banyak token, kapan harus meminta pemilik untuk memperbaiki state, dan kapan harus berhenti.

Klasifikasikan sebelum melakukan retry

Dokumentasi resmi provider mendukung pemisahan kelas-kelas ini. Panduan error OpenAI membedakan autentikasi tidak valid, API key yang salah, kegagalan allowlist IP, rate limit, kuota atau billing yang habis, error server, overload, error koneksi SDK, timeout SDK, request yang salah format, penolakan permission, dan pengecualian rate-limit. Panduan rate limit-nya merekomendasikan exponential backoff acak tetapi juga mencatat bahwa request yang gagal tetap dihitung terhadap batas per menit.

Dokumentasi error Anthropic memisahkan invalid_request_error, authentication_error, permission_error, not_found_error, request_too_large, rate_limit_error, api_error, dan overloaded_error. Anthropic juga mendokumentasikan rate limit 429 dengan panduan retry-after, dan panduan stop-reason mereka mencantumkan refusal sebagai kondisi berhenti di level model.

Troubleshooting Gemini memetakan kegagalan autentikasi dan permission secara terpisah dari 429 RESOURCE_EXHAUSTED, error internal 500, dan ketidaktersediaan 503. Dokumentasi rate limit Gemini menjelaskan dimensi request, token, request harian, dan spend. Pengaturan safety Gemini juga menampilkan prompt block, finishReason kandidat, dan safetyRatings, termasuk finishReason SAFETY saat konten respons diblokir.

Bukti itu mengarah pada aturan sederhana: taksonomi error LLM gateway harus menormalisasi sinyal spesifik provider menjadi field keputusan sebelum gateway memilih tindakan.

Kegagalan Auth dan permission

Kegagalan auth dan permission harus segera dihentikan. Mencoba ulang key yang salah atau project yang dilarang biasanya hanya menambah noise tanpa mengubah hasil.

Normalisasikan sinyal-sinyal ini ke dalam kelas auth:

Sinyal Makna yang mungkin Perilaku gateway
401 authentication tidak valid Key salah, kedaluwarsa, dicabut, formatnya salah, atau berasal dari project yang salah Jangan retry; beri peringatan kepada pemilik key
401 isu keanggotaan organisasi atau project Pemanggil tidak berada di organisasi atau project yang diperlukan Jangan retry; arahkan ke pemilik akun
401 atau 403 IP allowlist atau masalah permission Request berasal dari jaringan yang salah atau tidak memiliki akses endpoint Jangan retry; tampilkan bukti permission
Provider authentication_error atau permission_error Auth atau penolakan akses spesifik provider Jangan fallback; perbaiki kredensial atau grant

Dalam gateway, error auth harus mencakup owner_key, credential_id, project_id, provider, endpoint_family, requested_model, dan route_id. Hindari mencatat secret mentah. Insiden harus menjawab key mana yang gagal, route mana yang mencoba memanggil, dan siapa yang bisa memperbaikinya.

Fallback biasanya salah untuk kegagalan auth. Jika sebuah tim belum menyetujui satu provider, berpindah diam-diam ke provider lain dapat melewati procurement, batas data, atau kebijakan model. Respons yang terkendali adalah kegagalan yang jelas, peringatan ke pemilik, dan jalur perbaikan.

Kegagalan kuota dan rate-limit

Kegagalan kuota dan rate-limit adalah kelas yang paling sering dirugikan oleh logika retry yang samar. Sebuah 429 bisa berarti burst pacing, limit request-per-minute, limit token-per-minute, limit request harian, habisnya anggaran bulanan, habisnya kredit prabayar, atau limit berbasis spend. Kasus-kasus tersebut tidak memiliki satu jalur pemulihan yang sama.

Gunakan taksonomi error LLM gateway ini untuk keputusan kuota:

Sinyal kuota Jalur retry Jalur antre Jalur berhenti
429 dengan Retry-After Patuhi header jika sesuai dengan deadline alur kerja Antrekan job non-interaktif sampai waktu retry Hentikan jika waktu tunggu melebihi deadline
429 tanpa petunjuk waktu tunggu Gunakan backoff jitter yang dibatasi untuk budget percobaan kecil Kurangi concurrency untuk owner, route, atau endpoint family Hentikan jika percobaan berulang meningkatkan penggunaan per menit
Dimensi limit token Kurangi prompt, output, ukuran batch, atau concurrency Antrekan job besar dan jalankan ulang dengan batch yang lebih kecil Hentikan jika request tidak bisa muat ke model atau kontrak konteks
Habisnya spend atau kredit Jangan retry otomatis Antre hanya jika pemilik finance telah menyetujui isi ulang atau kenaikan anggaran Fail closed dan pertahankan bukti biaya
Kuota harian/project habis Jangan retry loop pendek Tunda job batch sampai reset hanya jika diizinkan Fail closed untuk request yang menghadap pengguna

Kuncinya adalah membedakan pacing sementara dari anggaran yang habis. Backoff membantu ketika provider meminta Anda memperlambat. Backoff tidak membantu ketika akun tidak memiliki kredit atau job tidak bisa muat ke budget token yang tersedia.

Pasangkan bagian ini dengan strategi retry AI API Flatkey ketika Anda membutuhkan checklist retry yang lebih mendalam. Buat percobaan retry tetap terlihat di log agar finance dan operations dapat melihat token spend duplikat.

Kegagalan provider dan transport

Kegagalan provider dan transport berbeda dari kegagalan kuota. Artinya request mungkin valid, key mungkin valid, dan budget mungkin tersedia, tetapi route tidak dapat menyelesaikan panggilan.

Sinyal umum meliputi:

Sinyal Makna Keputusan gateway
500 atau provider api_error Error internal di sisi provider Retry sebentar jika idempotent; periksa status jika berulang
503 unavailable atau overloaded Kondisi kapasitas, maintenance, atau outage provider Backoff atau fallback sebelum output parsial
Anthropic overloaded_error atau HTTP 529 Overload spesifik provider Anggap sebagai kapasitas provider, bukan kuota pelanggan
SDK connection error Jalur network, proxy, TLS, DNS, atau firewall gagal Retry hanya ketika jalur transport kemungkinan bersifat sementara
SDK timeout Request melampaui budget timeout Retry hanya jika deadline alur kerja dan idempotency mengizinkannya
Streaming disconnect Output parsial mungkin sudah ada Lanjutkan hanya dengan kebijakan stream yang eksplisit

Provider fallback bisa berguna di sini, tetapi memerlukan kontrak. Route fallback harus mempertahankan bentuk endpoint, tools, kebutuhan output terstruktur, context window, batas data, persetujuan model, dan batas biaya. Jika streaming sudah menghasilkan token yang terlihat, perilaku yang lebih aman sering kali adalah berhenti dan menampilkan kegagalan yang terkendali alih-alih menyambung output dari route lain.

Gunakan keandalan API AI streaming untuk pemulihan yang spesifik untuk streaming, dan gunakan evaluasi fallback model sebelum mengubah error provider menjadi perubahan rute otomatis.

Request and validation failures

Kegagalan request dan validasi biasanya bukan insiden provider. Ini berarti pemanggil mengirim sesuatu yang tidak dapat diproses oleh endpoint.

Contohnya meliputi field wajib yang hilang, JSON yang tidak valid, parameter yang tidak didukung, keluarga endpoint yang salah, ID model tidak valid, konteks terlalu panjang, skema tool yang tidak didukung, modality yang tidak kompatibel, atau input file/gambar/video yang tidak memenuhi kontrak endpoint.

Gateway harus mencatat field berikut:

Field Mengapa penting
endpoint_family Membedakan bentuk OpenAI-compatible chat, responses, messages, Gemini, image, dan video
requested_model Mengidentifikasi nama model yang tidak valid atau tidak didukung
request_schema_version Menunjukkan apakah client dan gateway tidak sepakat
parameter_name Menunjukkan field yang bermasalah kepada engineer
input_token_estimate Membedakan input yang salah format dari kelebihan konteks
client_sdk dan sdk_version Menemukan masalah migrasi dan kompatibilitas

Jangan lakukan retry untuk kegagalan validasi yang tidak berubah. Ubah request menjadi bentuk yang valid atau kembalikan error yang dapat dibaca developer yang menyebutkan field yang perlu diperbaiki. Saat gateway mendukung beberapa keluarga endpoint, error validasi menjadi sangat penting karena sebuah request bisa valid untuk satu provider tetapi tidak valid untuk provider lain.

Safety and policy failures

Kegagalan safety dan policy perlu kelas sendiri karena retry dan fallback bisa secara tidak sengaja melemahkan guardrail. Penolakan safety bukan berarti downtime provider. Blok moderasi bukan berarti kuota habis. Output yang diblokir bukan alasan untuk terus melakukan sampling sampai gateway menemukan rute yang mengeluarkan konten terlarang.

Normalisasikan sinyal-sinyal ini ke dalam kelas safety:

Signal Bukti bergaya provider Perilaku gateway
Model refusal Structured outputs OpenAI mengekspos refusal; alasan penghentian Anthropic mencakup refusal Tampilkan respons yang aman dan jangan melewatinya dengan fallback
Moderation block Dokumentasi safety OpenAI merekomendasikan moderasi; error gambar dapat mengekspos moderation_blocked Catat konteks kategori aman dan minta input yang direvisi bila sesuai
Prompt block Pengaturan safety Gemini mengekspos promptFeedback.blockReason Kembalikan pesan yang terkontrol sebelum mengirim pekerjaan downstream
Output block Gemini dapat mengembalikan finishReason: SAFETY dan safety ratings; konten yang diblokir tidak dikembalikan Jangan retry secara buta; catat bahwa output diblokir
Policy or compliance rule Kebijakan khusus aplikasi, pengadaan, batas data, usia, atau aturan workflow teregulasi Gagal tertutup atau arahkan ke review manusia

Aturan praktisnya sederhana: taksonomi error LLM gateway tidak boleh memperlakukan safety sebagai outage provider yang bisa dipulihkan. Fallback mungkin dapat diterima hanya ketika rute fallback mempertahankan kebijakan safety yang sama atau lebih ketat dan tujuannya adalah menyelesaikan versi aman dari tugas, bukan untuk melewati blok.

The normalized error record

Taksonomi error LLM gateway yang berguna mengubah kegagalan spesifik provider menjadi satu record yang tahan lama.

Bidang yang dinormalisasi Contoh nilai Penggunaan
error_class auth, quota, provider, request, safety, cancelled Menggerakkan pengelompokan runbook dan dashboard
http_status 401, 403, 429, 500, 503, 529 Mempertahankan sinyal protokol
provider_error_type rate_limit_error, overloaded_error, RESOURCE_EXHAUSTED, moderation_blocked Mempertahankan makna khusus provider
provider_error_code insufficient_quota, invalid_api_key, SAFETY Mendukung percabangan yang tepat
retry_after_ms Delay yang berasal dari header atau null Mencegah perkiraan waktu retry
retryable true atau false Memisahkan kebijakan kode dari wording UI
fallback_allowed true atau false Menegakkan kontrak rute
fail_closed_reason quota_exhausted, safety_block, contract_mismatch Menjelaskan mengapa gateway berhenti
requested_model dan served_model ID model atau alias Menunjukkan apakah routing mengubah perilaku
endpoint_family openai, anthropic, gemini, image-generation Membuat isu migrasi terlihat
partial_output_committed true atau false Mencegah output yang terlihat pengguna menjadi duplikat
usage_units and estimated_cost token, gambar, detik, dolar Membuat biaya retry terlihat
request_id and provider_request_id ID gateway dan provider Mendukung tiket dukungan dan peninjauan insiden

Jangan reduksi rekaman ini menjadi satu string seperti "Panggilan LLM gagal." String itu tidak cukup untuk memutuskan apakah harus memutar kunci, menunggu, mengisi ulang, fallback, merevisi prompt, atau berhenti.

Klasifikator TypeScript sederhana

Klasifikator tidak perlu mengetahui setiap detail provider pada hari pertama. Mulailah dengan bucket yang eksplisit dan default yang gagal secara konservatif.

type ErrorClass =
  | "auth"
  | "quota"
  | "provider"
  | "request"
  | "safety"
  | "cancelled"
  | "unknown";

type GatewayErrorInput = {
  httpStatus?: number;
  providerErrorType?: string;
  providerErrorCode?: string;
  finishReason?: string;
  stopReason?: string;
  clientCancelled?: boolean;
  timeout?: boolean;
};

function classifyGatewayError(error: GatewayErrorInput): ErrorClass {
  const type = (error.providerErrorType || "").toLowerCase();
  const code = (error.providerErrorCode || "").toLowerCase();
  const stop = (error.stopReason || "").toLowerCase();
  const finish = (error.finishReason || "").toLowerCase();

  if (error.clientCancelled) return "cancelled";

  if (error.httpStatus === 401 || error.httpStatus === 403) return "auth";
  if (type.includes("auth") || type.includes("permission")) return "auth";
  if (code.includes("invalid_api_key") || code.includes("ip_not_authorized")) {
    return "auth";
  }

  if (error.httpStatus === 429) return "quota";
  if (type.includes("rate_limit") || code.includes("quota")) return "quota";
  if (code.includes("resource_exhausted")) return "quota";

  if (stop === "refusal" || finish === "safety") return "safety";
  if (code.includes("moderation") || code.includes("blocked")) return "safety";

  if (error.httpStatus === 400 || error.httpStatus === 422) return "request";
  if (type.includes("invalid_request") || type.includes("bad_request")) {
    return "request";
  }

  if (error.timeout) return "provider";
  if ([500, 502, 503, 504, 529].includes(error.httpStatus || 0)) {
    return "provider";
  }
  if (type.includes("overloaded") || type.includes("api_error")) {
    return "provider";
  }

  return "unknown";
}

Gunakan ini hanya sebagai titik awal. Klasifikator produksi harus menyimpan pemetaan khusus provider di konfigurasi, fixture pengujian, dan peninjauan insiden, bukan hanya tersembunyi di kode aplikasi.

Runbook: retry, queue, fallback, atau fail closed

Setelah kelas diketahui, gateway dapat memilih tindakan.

Class Default action Retry condition Fallback condition Fail-closed condition
Auth Berhenti dan beri tahu pemilik Tidak ada, kecuali baru saja terjadi refresh kredensial Tidak ada Selalu sampai kunci atau izin diperbaiki
Quota Backoff, antre, atau berhenti לפי dimensi limit Rate limit sementara sesuai dengan deadline dan anggaran percobaan Rute yang disetujui menjaga biaya, kualitas, dan batas data Pengeluaran, kredit, kuota harian, atau deadline terlampaui
Provider Backoff atau alihkan sekitar kegagalan provider sementara Panggilan idempoten, tidak ada output parsial, deadline masih ada Ada rute setara yang disetujui Kegagalan berulang, output parsial, atau alur kerja berisiko tinggi
Request Kembalikan error validasi yang terlihat oleh developer Hanya setelah mutasi request Hanya ketika endpoint/model yang kompatibel dipilih secara eksplisit Skema tidak valid, overflow konteks, kemampuan tidak didukung
Safety Kembalikan respons aman atau minta revisi Tidak ada untuk konten yang tidak berubah Hanya dengan policy yang sama atau lebih ketat, jangan pernah untuk bypass Prompt/output diblokir, penolakan, aturan kepatuhan
Cancelled Hentikan pekerjaan dan pertahankan state Tidak ada Hanya jika pengguna secara eksplisit memulai ulang Pengguna membatalkan, deadline, client terputus

Tabel ini adalah pusat operasional dari taksonomi error LLM gateway. Tabel ini memberi tahu gateway kapan pekerjaan tambahan masih aman dan kapan pekerjaan tambahan berubah menjadi risiko.

How to apply this in Flatkey

Gunakan taksonomi ini sebagai checklist rollout, bukan proyek dashboard sekali jadi.

  1. Pilih satu alur kerja, seperti chat dukungan, ekstraksi batch, job evaluasi, atau traffic code assistant.
  2. Tentukan keluarga endpoint yang diizinkan, model, rute fallback, dan batas biaya untuk alur kerja tersebut.
  3. Normalisasikan error provider ke field-field di atas.
  4. Buat kegagalan auth dan permission terlihat oleh owner serta tidak dapat di-retry.
  5. Pisahkan rate limit sementara dari kuota, pengeluaran, dan habisnya limit harian.
  6. Wajibkan kontrak fallback sebelum mengganti provider atau model.
  7. Perlakukan penolakan safety dan moderasi sebagai hasil policy, bukan outage provider.
  8. Catat state output parsial sebelum retry atau fallback apa pun.
  9. Tinjau penggunaan dan bukti rute di Flatkey sebelum memperluas ke lebih banyak alur kerja.
  10. Tautkan runbook ke harga Flatkey sehingga operator dapat memverifikasi katalog dan permukaan biaya saat ini.

Snapshot API pricing publik Flatkey pada 3 Juli 2026 mengembalikan 45 baris model, enam vendor ID, dan keluarga endpoint yang didukung termasuk openai, anthropic, gemini, dan image-generation. Perlakukan itu hanya sebagai fakta sumber yang bertanggal. Ketersediaan model, harga, dan perilaku rute harus diperiksa ulang sebelum rollout produksi.

FAQ

What is an LLM gateway error taxonomy?

Taksonomi error LLM gateway adalah kumpulan kelas kegagalan yang dinormalisasi untuk traffic model-provider. Ini memisahkan kegagalan auth, quota, provider, request, safety, dan cancellation sehingga gateway dapat memilih perilaku retry, antre, fallback, atau fail-closed.

Why not retry every LLM API error?

Retry semua error dapat memperburuk insiden. Ini dapat memperbesar rate limit, menghabiskan lebih banyak token setelah kuota habis, menyembunyikan kegagalan kredensial, menggandakan output parsial, atau melewati blok safety. Taksonomi menentukan kapan retry benar-benar diizinkan.

Should safety refusals trigger fallback?

Tidak secara default. Penolakan safety, blok moderasi, blok prompt, dan finishReason: SAFETY harus diperlakukan sebagai hasil policy. Fallback tidak boleh digunakan untuk mencari rute safety yang lebih lemah.

How should an LLM gateway classify quota failures?

Pisahkan pacing rate sementara dari pengeluaran yang habis, kredit prabayar, limit harian, limit token, dan limit project. Pacing sementara dapat menggunakan backoff terbatas atau antrean. Anggaran yang habis biasanya fail closed sampai pemilik menyetujui kapasitas tambahan.

How does Flatkey help with an LLM gateway error taxonomy?

Flatkey memberi tim satu permukaan gateway untuk akses model, routing, billing, analitik penggunaan, dan kontrol operasional. Gunakan ini untuk menjaga kelas error yang dinormalisasi tetap terikat pada owner key, keluarga endpoint, model yang diminta, model yang dilayani, dan bukti penggunaan.

Mulailah dengan satu alur kerja, definisikan taksonomi error LLM gateway Anda, lalu dapatkan kunci dan uji kasus auth, quota, provider, request, safety, dan cancellation sebelum traffic produksi bergantung pada recovery otomatis.

Taksonomi Error LLM Gateway: Pisahkan Kegagalan Auth, Kuota, Provider, dan Safety | flatkey.ai