DynamoDB RequestLimitExceeded

TL;DR — Anda melebihi kuota laju-permintaan tingkat-akun/tabel, bukan provisioned capacity milik tabel. Tabel on-demand default ke 40.000 read request unit dan 40.000 write request unit per detik. Pertahankan retry backoff SDK, naikkan kuota di Service Quotas jika trafik nyata, dan sebarkan beban agar satu tabel/partisi bukan bottleneck.

Apa artinya

RequestLimitExceeded: Throughput exceeds the current throughput limit for your
account. To request a limit increase, contact AWS Support.

RequestLimitExceeded adalah salah satu dari tiga exception throttling yang dikembalikan DynamoDB pada data plane (bersama ProvisionedThroughputExceededException dan ThrottlingException). Ia menandakan Anda telah mencapai service quota tingkat-akun — seperti kuota throughput per-tabel untuk tabel on-demand — alih-alih batas provisioned RCU/WCU per-tabel. Ia mengembalikan HTTP 400 dan dapat dicoba ulang — SDK backoff dan mencoba ulang secara otomatis. Kesalahan membawa field ThrottlingReason (mis. TableWriteAccountLimitExceeded atau IndexReadAccountLimitExceeded) ditambah ARN resource yang terkena.

Mengapa itu terjadi

  • Batas default tabel on-demand — setiap tabel on-demand (dan setiap GSI-nya) punya kuota default yang dapat disesuaikan sebesar 40.000 read request unit dan 40.000 write request unit per detik. Konsumsi berkelanjutan melampauinya throttle dengan ThrottlingReason tingkat-akun sampai kuota dinaikkan.
  • Tabel tidak dapat menskala lebih jauh di bawah kuota akun — sesuai dokumen AWS, laju permintaan on-demand melebihi throughput akun yang diizinkan "and the table cannot be scaled further". Kuota ini adalah pengaman cadangan, dan dapat ditingkatkan.
  • Tabel yang baru on-demand memanas — tabel on-demand baru (atau yang baru dialihkan ke on-demand) langsung melayani hingga dua kali lipat puncak sebelumnya; lonjakan yang jauh lebih besar dari itu dapat throttle sebelum menskala.
  • Satu tabel panas menyerap lonjakan trafik jauh di atas puncak terkininya.

Bagaimana cara memperbaikinya

  1. Pertahankan retry exponential-backoff aktif — default SDK menangani lonjakan transien. Gunakan mode retry adaptif untuk workload yang meledak. Jangan nonaktifkan retry.
  2. Naikkan kuota — minta peningkatan ke throughput on-demand per-tabel (atau kuota jumlah-tabel/throughput akun) di Service Quotas jika trafik sah dan berkelanjutan.
  3. Pre-warm sebelum lonjakan yang diketahui — ramp trafik naik alih-alih langsung melompat ke puncak, agar penskalaan on-demand tetap di depan permintaan.
  4. Sebarkan beban — shard kunci panas dan distribusikan tulisan agar satu tabel/partisi tidak membawa seluruh lonjakan (pola hot-partition).
  5. Cache baca panas (DAX atau cache aplikasi) untuk membuang tekanan baca di bawah batas.

FAQ

Bagaimana RequestLimitExceeded berbeda dari ProvisionedThroughputExceededException? ProvisionedThroughputExceededException berarti tabel provisioned-capacity melebihi RCU/WCU yang dikonfigurasinya sendiri. RequestLimitExceeded berarti Anda mencapai kuota laju-permintaan tingkat-akun atau tabel — paling sering default on-demand 40.000 read dan 40.000 write request unit per detik — terlepas dari pengaturan per-tabel satu tabel.

Apakah RequestLimitExceeded dapat dicoba ulang? Ya. Ini kesalahan throttling dan AWS SDK mencoba ulang secara otomatis dengan exponential backoff. Kejadian yang bertahan berarti Anda butuh peningkatan kuota atau menyebarkan beban, bukan lebih banyak retry.

Kesalahan terkait

Referensi

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.