BazaarLinkBazaarLink
Masuk
DokumentasiReferensi APIReferensi SDKPenggunaan AgentikSkill AI
Daftar isi

Kode Error

Kode Error

Format respons kesalahan

Envelope error berbeda menurut endpoint. Gunakan status HTTP dan error.type bila tersedia. error.code dapat berupa string atau status numerik, atau tidak ada; error.message hanya untuk ditampilkan.

{
  "error": {
    "message": "Insufficient credits. Please top up to continue.",
    "type": "invalid_request_error",
    "code": "insufficient_credits"
  }
}

HTTP status dan kode kesalahan

Envelope error berbeda menurut endpoint. Gunakan status HTTP dan error.type bila tersedia. error.code dapat berupa string atau status numerik, atau tidak ada; error.message hanya untuk ditampilkan.

Kode
Nama
Deskripsi
424Dependensi GagalKunci BYOK yang Anda atur sendiri ditolak oleh penyedia upstream; periksa atau ganti di pengaturan BYOK. Ini hanya muncul dalam mode strict
400Permintaan BurukPermintaan salah format, array messages kosong, atau field wajib hilang
401Tidak SahKunci API hilang, tidak valid, atau dinonaktifkan
402Pembayaran DiperlukanKredit akun tidak cukup, batas pengeluaran per kunci tercapai, atau batas anggaran bulanan/mingguan terlampaui
403DilarangAkun ditangguhkan atau tidak memiliki izin
404Tidak DitemukanRequested model, generation, key, or other resource does not exist
409KonflikResource is not in the required state, such as an incomplete video job
410HilangRequested model has been retired and must be replaced
413Muatan Terlalu BesarBody permintaan melebihi 10 MB; kurangi ukuran konten atau pecah permintaan
416Rentang Tidak MemuaskanRequested byte range is invalid for generated video content
429Terlalu Banyak PermintaanBatas rate terlampaui; periksa header Retry-After sebelum mencoba ulang
432Kuota Gratis HabisEndpoint kompatibel Tavily (/v1/search, /v1/extract, /v1/crawl, /v1/map): kuota pencarian gratis sudah habis, atau saldo nol atau kurang; tambahkan kredit untuk melanjutkan. Isi respons berformat Tavily: {"detail":{"error":"..."}}
500Kesalahan ServerError internal BazaarLink
502Gerbang BurukTidak ada sumber upstream yang dapat menangani permintaan; permintaan menghasilkan error.
503Layanan Tidak TersediaTidak ada penyedia upstream yang dikonfigurasi untuk model ini; hubungi admin
504Gateway Batas WaktuUpstream connection or stream stalled and timed out

Kode penagihan yang dapat dibaca mesin

A 402 can represent different controls. Use these stable codes to choose the correct action.

Kode
Deskripsi
byok_key_invalidKunci BYOK yang Anda atur sendiri ditolak oleh penyedia upstream; periksa atau ganti di pengaturan BYOK. Ini hanya muncul dalam mode strict.
budget_cap_reachedA weekly or monthly budget cap was reached; raise or reset the cap.
credit_limit_exceededA monthly-billing organization's credit line was exhausted; contact billing.
insufficient_creditsThe prepaid balance is insufficient; add credits.
spend_limit_exceededThe API key reached its daily, weekly, or monthly spend limit.
capacity_unavailableThis model is temporarily at capacity. Retry shortly; the Retry-After header says how long to wait.

Stable error.code catalog

These string codes are emitted by public inference and media paths. Branch on the string code when present; the HTTP status remains the broad failure class.

Model dan titik akhir
Kesalahan pencarian model, siklus hidup, harga, modalitas, dan kompatibilitas titik akhir.
Kode
HTTP
unknown_model400
invalid_model_id400
model_not_found404
model_retired410
model_endpoint_mismatch400
embedding_on_chat_endpoint400
model_not_priced400
invalid_modality_for_model400
Permintaan dan keamanan
Parameter, konteks, alat, skema, dan penolakan keamanan konten tidak valid.
Kode
HTTP
missing_required_field400
unsupported_param400
max_tokens_invalid400
context_too_long400
tool_use_unsupported400
malformed_tool_messages400
invalid_response_format_schema400
invalid_tools_definition400
content_moderation403
content_filter403
unknown_4xx400
Pembuatan dan pengeditan gambar
Masukan gambar, pengeditan multibagian, keluaran, dan kesalahan saluran gambar.
Kode
HTTP
invalid_image_url400
input_images_not_supported400
invalid_content_type400
mask_not_supported400
unsupported_response_format400
missing_prompt400
missing_image400
too_many_images400
invalid_image_type400
image_too_large400
invalid_n400
pipeline_error502
no_images502
Perutean hulu
Konektivitas penyedia yang disanitasi, autentikasi, pembatasan, dan kesalahan ketersediaan.
Kode
HTTP
upstream_unreachable502
upstream_auth_failed502
upstream_rate_limited429
capacity_unavailable429
upstream_unavailable502/503
byok_key_invalid424

Moderasi Konten

Semua permintaan secara otomatis ditinjau sebelum dikirim ke model. Permintaan yang melanggar kebijakan penggunaan kami akan ditolak sebelum dikirim ke model, dan mengembalikan error 403.

Kategori yang akan diblokir

Moderasi didasarkan pada Kebijakan Penggunaan yang Dapat Diterima (Acceptable Use Policy) kami dan terutama memblokir kategori konten berikut:

  • Konten eksploitasi seksual
  • Ancaman kekerasan
  • Panduan operasional untuk tindakan ilegal
  • Konten terkait bahaya biologis

Format respons 403

Permintaan yang diblokir oleh moderasi akan mengembalikan error dengan format berikut:

{
  "error": {
    "message": "Your prompt was blocked by content moderation.",
    "type": "invalid_request_error",
    "code": "content_filter"
  }
}

Permintaan yang diblokir tidak dikenakan biaya — Anda tidak akan dikenakan biaya untuk permintaan yang ditolak.

Mengajukan banding atas kesalahan deteksi

Jika Anda yakin suatu permintaan diblokir secara keliru, hubungi dukungan dengan menyertakan waktu permintaan dan (jika memungkinkan) request id — kami akan meninjaunya.

Privasi

Permintaan ditinjau otomatis untuk keamanan konten; teks dan gambar dari input terbaru Anda dapat dikirim ke layanan penilaian keamanan konten pihak ketiga.

Untuk permintaan yang dinilai melanggar, diduga melanggar, mendekati ambang batas, atau diambil sebagai sampel acak, kami dapat menyimpan teks lengkap atau bagian awalnya sebagai bukti kepatuhan, penanganan sengketa, dan audit, tanpa menjanjikan jangka waktu penghapusan tetap.

Permintaan biasa lainnya yang berhasil tidak disimpan prompt dan responsnya; permintaan dengan kunci ZDR tidak tercakup dalam dua poin pertama.

Batas tarif, anggaran, dan rem darurat

These controls can reject an otherwise valid request and require different recovery actions.

Kontrol
HTTP
Cara mengidentifikasinya
Batas kecepatan permintaan429Kode string atau kode numerik 429; gunakan header Retry-After dan X-RateLimit-*.
Blok penalti batas tarif429Kode numerik 429 dan pesan pembatasan sementara; gunakan Coba Lagi-Setelah.
Global menghabiskan rem darurat503Kode numerik 503, pesan batas pembelanjaan global, dan Coba Lagi Setelah 30 atau 300 detik.
Scoped spend brake429Numeric code 429 and a spend circuit-breaker message naming the scope.
Penagihan dan kontrol anggaran402Gunakan kode string penagihan stabil yang tercantum di atas.

Envelope error berbeda menurut endpoint. Gunakan status HTTP dan error.type bila tersedia. error.code dapat berupa string atau status numerik, atau tidak ada; error.message hanya untuk ditampilkan.

Status sumber daya video dan media

Video validation commonly returns numeric code 400. Missing jobs return 404, retired models 410, unfinished video content 409, and invalid video byte ranges 416.

Kebijakan coba lagi

Retry only failures that may recover without changing the request. Honor Retry-After or use exponential backoff with jitter. Do not stack SDK and manual retries.

Coba lagi dengan backoff
429, 502, 503, and 504. Check the original generation job before creating another after an ambiguous network failure.
Perbaiki sebelum mencoba lagi
400, 401, 402, 403, 404, 409, 410, 413, and 416. Fix the request, credentials, balance, permissions, resource state, or Range header first.

Menangani Error

import random
import time
from openai import OpenAI, APIStatusError

client = OpenAI(
    base_url="https://api.bazaarlink.ai/v1",
    api_key="sk-bl-YOUR_API_KEY",
    max_retries=0,  # Avoid double retries; this example handles them.
)

RETRYABLE = {429, 502, 503, 504}

for attempt in range(5):
    try:
        response = client.chat.completions.create(
            model="openai/gpt-4o",
            messages=[{"role": "user", "content": "Hello!"}],
        )
        break
    except APIStatusError as error:
        if error.status_code not in RETRYABLE or attempt == 4:
            raise
        retry_after = error.response.headers.get("Retry-After")
        delay = (
            float(retry_after)
            if retry_after
            else min(8, 0.5 * (2 ** attempt)) + random.uniform(0, 0.25)
        )
        time.sleep(delay)

Format Error Streaming

Error yang terjadi sebelum token apa pun di-stream mengembalikan respons error HTTP standar dengan body JSON.

After a stream starts, the HTTP response is already 200. Parse each SSE data frame and treat a top-level error or choices[0].finish_reason === "error" as a failed, incomplete response.

Jika stream gagal setelah dimulai, BazaarLink dapat mengirim event SSE terakhir dengan objek error tingkat atas, diikuti data: [DONE]. Perlakukan respons sebagai belum lengkap; jangan gunakan output parsial sebagai hasil akhir.

data: {"error":{"message":"The request could not be completed.","type":"upstream_error","code":502}}

data: [DONE]

// Branch on error.code; error.type can vary by failure path.
Support
Hi! How can we help you?
Send a message and we'll get back to you soon.