Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
OPENAI API kembali 429 dengan jenis insufficient_quota kesalahan ketika akun Anda kehabisan kredit atau melampaui batas pengeluaran atau penggunaan. Ini adalah kode status yang sama dengan rate limit, tetapi menunggu beberapa detik tidak akan memperbaikinya. Akses kembali tersedia hanya setelah seseorang menambahkan kredit, menaikkan batas, atau periode bulanan diatur ulang. OpenAI mengatakan bahwa mencoba kembali permintaan yang terkait dengan kesalahan penagihan, pengeluaran, atau kuota tidak akan memulihkan akses API, dan bahwa Anda harus memeriksa error.code untuk menemukan penyebab spesifiknya. Untuk informasi selengkapnya, lihat Kode kesalahan.
Seperti apa tampilan error kuota OpenAI
Masing-masing kesalahan ini mengembalikan 429.
error.type masih bisa berupa insufficient_quota, jadi periksa error.code untuk mengetahui mana yang Anda punya.
error.code |
Apa artinya | Bagaimana akses dipulihkan kembali |
|---|---|---|
credit_balance_exhausted |
Organisasi Anda tidak memiliki kredit prabayar yang tersisa. | Tambahkan kredit. |
organization_spend_limit_exceeded |
Organisasi Anda mencapai batas pengeluaran bulanannya di semua proyek. | Naikkan atau hapus batas, atau tunggu reset bulanan. |
project_spend_limit_exceeded |
Proyek ini mencapai batas pengeluaran bulanannya. Proyek lain tetap berfungsi. | Naikkan atau hapus batas proyek, atau tunggu reset bulanan. |
organization_usage_limit_exceeded |
Organisasi Anda mencapai batas penggunaan bulanan yang ditetapkan OpenAI untuk organisasi Anda. Ini terpisah dari batas pengeluaran yang Anda tetapkan. | Minta batas yang disetujui yang lebih tinggi, atau hubungi dukungan OpenAI. |
Bandingkan ini dengan kesalahan "Batas laju tercapai", seperti rate_limit_exceeded dan slow_down. Itu bersifat sementara, dan biasanya akan berhasil jika Anda mencoba lagi setelah menunggu sebentar. Untuk informasi selengkapnya, lihat Kesalahan OpenAI 'Batas laju tercapai'.
Cara menangani kesalahan kuota OpenAI
- Baca
error.code, tidak hanya statusnya.429sendiri tidak memberi tahu Anda apakah akan mencoba kembali. Perlakukan 4 kode dalam tabel sebagai "stop", dan kode batas laju permintaan sebagai "wait and retry". - Berhenti mencoba lagi. Jangan mengirim permintaan lagi, dan jangan biarkan loop retry terus memanggil API. Hingga seseorang memperbaiki masalah penagihan, setiap permintaan gagal dengan cara yang sama.
- Jeda semua panggilan yang akan gagal. Satu kesalahan kuota berarti permintaan berikutnya dari organisasi atau proyek yang sama juga gagal. Lewati mereka alih-alih mengirim masing-masing dan menunggu munculnya error.
- Beri tahu pengguna. Jelaskan bahwa fitur AI tidak tersedia untuk saat ini, dan jaga agar aplikasi Anda tetap berfungsi.
- Peringatkan diri Anda sendiri. Catat kode tersebut dengan tingkat keparahan tinggi, atau hubungi penanggung jawab penagihan. Perbaikan berada di luar kode Anda, jadi pihak yang tepat perlu mengetahuinya.
OpenAI Python SDK mencoba ulang respons 429 2 kali secara default. Berapa pun kali dicoba ulang, kode Anda akhirnya mendapatkan RateLimitError dengan kode penagihan, dan di situlah Anda berhenti:
import logging
import openai
from openai import OpenAI
client = OpenAI()
logger = logging.getLogger(__name__)
BILLING_CODES = {
"credit_balance_exhausted",
"organization_spend_limit_exceeded",
"project_spend_limit_exceeded",
"organization_usage_limit_exceeded",
}
billing_error: str | None = None
def ask(prompt: str) -> str:
global billing_error
if billing_error:
raise RuntimeError("AI features are paused until billing is fixed.")
try:
response = client.responses.create(model="gpt-4.1", input=prompt)
return response.output_text
except openai.RateLimitError as error:
if error.code in BILLING_CODES:
billing_error = error.code
logger.critical("OpenAI billing error: %s", error.code)
raise
Flag tetap aktif hingga aplikasi Anda dimulai ulang. Bersihkan dengan cara lain jika aplikasi Anda berjalan dalam waktu lama, misalnya dengan tindakan admin setelah seseorang memperbaiki masalah penagihan.
Cara menguji bahwa aplikasi Anda menangani kesalahan kuota OpenAI
Anda jarang melihat error kuota selama pengembangan. Akun pengujian Anda memiliki saldo, dan penggunaan Anda masih rendah. Jadi, cara Anda menguji penanganan kuota menentukan apakah Anda menemukan bug sebelum pengguna Anda menemukannya.
| Approach | Apa yang Anda temukan | Yang Anda lewatkan |
|---|---|---|
| Tunggu proses produksi | Kegagalan aktual | Semuanya, sampai pengguna menekannya, dan fitur AI tetap down sampai seseorang melihat |
| Mock API dalam pengujian Anda, atau biarkan agen coding Anda menulis mock | Apakah cabang stop Anda berjalan | Isi dan kode kesalahan nyata OpenAI, dan kebijakan percobaan kembali SDK Anda. Aplikasi Anda juga memerlukan sakelar khusus pengujian untuk mengakses mock. |
| Gunakan kredit nyata Anda atau tetapkan batas pengeluaran kecil | Perilaku sesungguhnya | Ini berbayar, dan memblokir setiap aplikasi lain yang berbagi organisasi atau proyek |
| Mencegat lalu lintas nyata aplikasi Anda dan mengembalikan kesalahan kuota sesuai permintaan | URL nyata, SDK nyata Anda dan kebijakan percobaan ulang, dan format kesalahan OpenAI sendiri | Tidak ada perubahan dalam aplikasi Anda, sehingga aplikasi Anda tidak menguji kode Anda dalam isolasi. Gunakan pengujian unit Anda untuk itu saja. |
Coba ini di aplikasi Anda
Dev Proxy mencegat permintaan aplikasi Anda ke api.openai.com dan mengembalikan kesalahan OpenAI, sementara aplikasi Anda terus memanggil URL nyata. preset openai-throttling mencampurkan error credit_balance_exhausted ke dalam error batas laju. Ini kembali 429 dengan jenis insufficient_quota dan tanpa Retry-After header, sehingga Anda dapat memeriksa apakah aplikasi Anda berhenti alih-alih mencoba kembali.
Unduh preset, dan mulai Dev Proxy dengannya:
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Untuk menguji hanya kesalahan kuota, edit file prasetel openai-errors.json dan pertahankan hanya respons credit_balance_exhausted. Untuk menguji kode batas pengeluaran dan penggunaan, tambahkan respons dengan bentuk yang sama dan respons dengan code yang berbeda.
Kemudian jalankan aplikasi Anda seperti biasa dan tonton apa yang dilakukannya. Untuk menginstal Dev Proxy, lihat Menyiapkan Dev Proxy.