DynamoDB RequestLimitExceeded
TL;DR — Superaste una cuota de tasa de peticiones a nivel de cuenta/tabla, no la capacidad aprovisionada propia de una tabla. Las tablas bajo demanda tienen por defecto 40 000 unidades de petición de lectura y 40 000 unidades de petición de escritura por segundo. Mantén los reintentos con backoff del SDK, sube la cuota en Service Quotas si el tráfico es real, y distribuye la carga para que una sola tabla/partición no sea el cuello de botella.
Qué significa
RequestLimitExceeded: Throughput exceeds the current throughput limit for your
account. To request a limit increase, contact AWS Support.RequestLimitExceeded es una de las tres excepciones de limitación que DynamoDB devuelve en el plano de datos (junto a ProvisionedThroughputExceededException y ThrottlingException). Señala que alcanzaste una cuota de servicio a nivel de cuenta — como la cuota de rendimiento por tabla para las tablas bajo demanda — en lugar de un techo de RCU/WCU aprovisionadas por tabla. Devuelve HTTP 400 y sí es reintentable — los SDK aplican backoff y reintentan automáticamente. El error incluye campos ThrottlingReason (p. ej. TableWriteAccountLimitExceeded o IndexReadAccountLimitExceeded) más el ARN del recurso afectado.
Por qué ocurre
- Techo por defecto de la tabla bajo demanda — cada tabla bajo demanda (y cada uno de sus GSI) tiene una cuota por defecto ajustable de 40 000 unidades de petición de lectura y 40 000 unidades de petición de escritura por segundo. El consumo sostenido por encima de eso provoca limitaciones con
ThrottlingReasons a nivel de cuenta hasta que se suba la cuota. - La tabla no puede escalar más bajo la cuota de la cuenta — según los documentos de AWS, la tasa de peticiones bajo demanda supera el rendimiento permitido de la cuenta "y la tabla no puede escalar más". Estas cuotas son salvaguardas de respaldo, y se pueden aumentar.
- Una tabla recién puesta en bajo demanda calentándose — una tabla bajo demanda nueva (o una recién cambiada a bajo demanda) sirve al instante hasta el doble de su pico anterior; un pico mucho mayor que eso puede sufrir limitaciones antes de escalar.
- Una única tabla caliente absorbiendo un pico de tráfico muy por encima de su pico reciente.
Cómo solucionarlo
- Mantén activos los reintentos con backoff exponencial — el valor por defecto del SDK gestiona los picos transitorios. Usa el modo de reintento adaptativo para cargas con picos. No desactives los reintentos.
- Sube la cuota — solicita un aumento del rendimiento bajo demanda por tabla (o la cuota de recuento/rendimiento de tablas de la cuenta) en Service Quotas si el tráfico es legítimo y sostenido.
- Precalienta antes de un pico conocido — sube el tráfico de forma gradual en lugar de saltar directamente al pico, para que el escalado bajo demanda se mantenga por delante de la demanda.
- Distribuye la carga — reparte las claves calientes y distribuye las escrituras para que una sola tabla/partición no cargue con todo el pico (patrones de partición caliente).
- Cachea las lecturas calientes (DAX o una caché de aplicación) para aliviar la presión de lectura por debajo del techo.
FAQ
¿En qué se diferencia RequestLimitExceeded de ProvisionedThroughputExceededException? ProvisionedThroughputExceededException significa que una tabla de capacidad aprovisionada superó sus propias RCU/WCU configuradas. RequestLimitExceeded significa que alcanzaste una cuota de tasa de peticiones a nivel de cuenta o tabla — con mayor frecuencia el valor por defecto de bajo demanda de 40 000 unidades de petición de lectura y 40 000 de escritura por segundo — independientemente de la configuración por tabla de una sola tabla.
¿RequestLimitExceeded es reintentable? Sí. Es un error de limitación y los SDK de AWS lo reintentan automáticamente con backoff exponencial. Las apariciones persistentes significan que necesitas un aumento de cuota o distribuir la carga, no más reintentos.
Errores relacionados
- ProvisionedThroughputExceededException — capacidad aprovisionada por tabla superada.
- ThrottlingException — limitación del plano de control / general.
- Aprende: On-demand vs provisioned · Hot partitions
Referencias
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Troubleshooting throttling in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB on-demand capacity mode — Amazon DynamoDB Developer Guide
Última verificación el 2026-07-13 con la documentación oficial de AWS enlazada arriba.