DynamoDB ThrottlingException

TL;DR — Your request rate exceeded a limit. It's retryable — back off and retry (the SDK does this by default). If it persists, you're calling a control-plane API (CreateTable, UpdateTable, DescribeTable) too often, or hitting an account-level limit.

What it means

ThrottlingException: Rate of requests exceeds the allowed throughput.

ThrottlingException (and the related RequestLimitExceeded) signals a rate limit that isn't your table's per-partition capacity. It's most common on control-plane operations, which have low, account-wide limits, and on very high-volume data-plane bursts.

Why it happens

  • Polling control-plane APIs — calling DescribeTable, ListTables, UpdateTable in a tight loop (e.g. waiting for a table to become ACTIVE).
  • Creating/deleting many tables quickly — there's a limit on concurrent table operations.
  • Account-level request-rate limits exceeded across all tables.
  • A sudden burst beyond what the service will absorb even in on-demand mode (on-demand has an initial throughput ceiling that scales up over time).

How to fix it

  1. Retry with exponential backoff + jitter — the AWS SDKs do this automatically; keep retries enabled and consider adaptive retry mode.
  2. Stop tight-polling control-plane APIs. Use waiters (waitUntilTableExists) which poll on a sensible schedule instead of a hot loop.
  3. Batch and pace data-plane writes. Ramp bulk loads gradually so on-demand capacity can scale with you.
  4. Spread table operations over time rather than creating dozens at once.

Example

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'});

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.