Lewati ke konten

Tangani batas laju dan error server

Tunggu setelah respons 429 dan lakukan percobaan ulang secara hati-hati setelah kegagalan server sementara.

Diperbarui

Tangani respons 429

Permintaan yang terkena pembatasan laju mengembalikan 429 Too Many Requests dengan detail.status bernilai rate_limit_exceeded. Baca header respons sebelum mencoba lagi:

  • Retry-After menunjukkan waktu tunggu minimum dalam detik untuk permintaan yang ditolak.
  • X-RateLimit-Limit melaporkan batas bucket.
  • X-RateLimit-Remaining melaporkan sisa permintaan.
  • X-RateLimit-Reset melaporkan waktu bucket diatur ulang.

Tunggu selama Retry-After, lalu coba lagi menggunakan jeda eksponensial dan jitter. Kurangi permintaan paralel dan antrekan pekerjaan, alih-alih mengirim lonjakan saat jendela pembatasan diatur ulang.

Tangani error server

Untuk respons 500, isi publik memuat error umum dan request_id; detail pengecualian internal tidak dikembalikan. Respons 503 dapat menunjukkan layanan wajib yang sementara tidak tersedia.

Coba lagi permintaan hanya-baca dengan jeda terbatas. Sebelum mengulangi permintaan pembuatan, pembaruan, pembayaran, atau permintaan lain yang mengubah status, pastikan apakah percobaan pertama telah selesai. Timeout atau respons 5xx tidak membuktikan perubahan gagal, dan pengulangan langsung dapat menggandakan pekerjaan.

Pertahankan data diagnostik

Catat waktu, metode, jalur, status, isi respons, dan X-Request-Id. Jangan pernah mencatat nilai x-api-key. Hentikan percobaan ulang otomatis setelah sejumlah kecil percobaan yang dibatasi, lalu tampilkan kegagalan untuk ditinjau.