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, UpdateTable en un bucle ajustado (p. ej. esperando a que una tabla pase a ACTIVE).
  • 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/DELETING a la vez).
  • Un máximo de rendimiento bajo demanda configurado — superar MaxReadRequestUnits/MaxWriteRequestUnits en una tabla o GSI bajo demanda devuelve ThrottlingException.
  • 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

  1. 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.
  2. 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.
  3. 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.
  4. Distribuye las operaciones de tabla en el tiempo en lugar de crear docenas a la vez.
  5. Revisa ThrottlingReason en 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

Errores relacionados

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

Un cliente de escritorio rápido para DynamoDB que ejecuta el SQL real que DynamoDB no puede — JOINs, GROUP BY, agregaciones — con edición visual y un agente de IA con tus propias claves de Bedrock.

Prueba gratuita de 30 días, sin tarjeta — después, el plan Free sin límite de tiempo.