DynamoDB ThrottlingException
TL;DR: Su tasa de solicitudes excedió un límite. Se puede volver a intentar: retroceda y vuelva a intentarlo (el SDK hace esto de forma predeterminada). Si persiste, estás llamando a un plano de control API (CreateTable, UpdateTable, DescribeTable) con demasiada frecuencia o estás alcanzando un límite a nivel de cuenta.
Qué significa
ThrottlingException: Rate of requests exceeds the allowed throughput.ThrottlingException (y el relacionado RequestLimitExceeded) señala un límite de tasa que no es la configuración de RCU/WCU propia de una tabla aprovisionada. Vuelve como HTTP 400 y sí es reintentable. Es más común en operaciones del plano de control realizadas con demasiada rapidez, y — para las tablas bajo demanda — puede devolverse en cualquier operación del plano de datos cuando la tasa de peticiones es demasiado alta (incluso cuando superas un máximo configurado de rendimiento bajo demanda). El error incluye campos ThrottlingReason que nombran el recurso limitado y el límite alcanzado.
Por qué ocurre
- Sondear las API del plano de control — llamar a
DescribeTable,ListTables,UpdateTableen un bucle ajustado (p. ej. esperando a que una tabla pase aACTIVE). - Crear/borrar muchas tablas rápidamente — las operaciones concurrentes del plano de control están limitadas (no más de 500 tablas/índices en
CREATING/UPDATING/DELETINGa la vez). - Un máximo de rendimiento bajo demanda configurado — superar
MaxReadRequestUnits/MaxWriteRequestUnitsen una tabla o GSI bajo demanda devuelveThrottlingException. - Una ráfaga repentina en una tabla bajo demanda — las tablas nuevas empiezan en 4.000 escrituras/s y 12.000 lecturas/s, y superar el doble de tu pico anterior en 30 minutos puede provocar limitaciones hasta que DynamoDB escale.
Cómo solucionarlo
- Reintenta con backoff exponencial + jitter — los SDK de AWS lo hacen automáticamente; mantén los reintentos activados y considera el modo de reintento adaptativo.
- Deja de sondear en bucle ajustado las API del plano de control. Usa waiters (
waitUntilTableExists) que sondean con una cadencia razonable en lugar de un bucle en caliente. - Agrupa y regula las escrituras del plano de datos. Sube las cargas masivas de forma gradual para que la capacidad bajo demanda pueda escalar contigo.
- Distribuye las operaciones de tabla en el tiempo en lugar de crear docenas a la vez.
- Revisa
ThrottlingReasonen la respuesta. Nombra el recurso limitado y el límite — las limitaciones del plano de control y las del plano de datos bajo demanda necesitan soluciones distintas.
Ejemplo
import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
import {waitUntilTableExists} from '@aws-sdk/client-dynamodb';
const client = new DynamoDBClient({});
// a waiter polls on a backoff schedule — not a tight DescribeTable loop
await waitUntilTableExists({client, maxWaitTime: 120}, {TableName: 'Orders'});FAQ
¿Es ThrottlingException lo mismo que ProvisionedThroughputExceededException?
No. ProvisionedThroughputExceededException es el error del plano de datos por superar la capacidad aprovisionada de una tabla. ThrottlingException es más común en operaciones del plano de control (CreateTable, UpdateTable, DescribeTable), que tienen límites bajos a nivel de cuenta, y en ráfagas de muy alto volumen.
¿Cómo soluciono un ThrottlingException de DynamoDB?
Reintenta con backoff exponencial y jitter — los SDK de AWS lo hacen automáticamente. Deja de sondear en bucle ajustado las API del plano de control (usa waiters como waitUntilTableExists), sube las cargas masivas de forma gradual para que la capacidad bajo demanda pueda escalar contigo, y distribuye las operaciones de tabla en el tiempo.
Mide el tamaño en DynoTable
Cuando la limitación del plano de control bloquea la configuración de una tabla, usa DynoTable para explorar las tablas existentes en lugar de sondear DescribeTable en un bucle — abre las tablas con ⌘K tras un único refresco. Para las cargas masivas que disparan limitaciones bajo demanda, dimensiona el tráfico con la calculadora de precios antes de subirlo.
Cambia de perfil con ⌘P; Test Connection en Ajustes → Perfiles confirma la cuenta. Consulta Conectar a AWS e Instalar.
Fuentes
- Error handling with DynamoDB — ThrottlingException (verificado 2026-07-13)
- Troubleshooting throttling in Amazon DynamoDB (verificado 2026-07-13)
Errores relacionados
- ProvisionedThroughputExceededException — limitación de capacidad por tabla.
- RequestLimitExceeded — la cuota de tasa de peticiones de la cuenta.
- On-demand throughput exceeded — las tablas bajo demanda también pueden sufrir limitaciones.
- ResourceInUseException — tabla ocupada / ya existe.
- Aprende: On-demand vs provisioned
Referencias
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Troubleshooting throttling in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB on-demand capacity mode — Amazon DynamoDB Developer Guide
- DynamoDB maximum throughput for on-demand tables — Amazon DynamoDB Developer Guide
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.