DynamoDB ProvisionedThroughputExceededException

TL;DR — You're reading/writing faster than the table or index can serve. Switch the table to on-demand capacity, raise provisioned RCU/WCU (or enable auto-scaling), keep the SDK's default exponential-backoff retries, and spread traffic so one partition key isn't hot.

What it means

ProvisionedThroughputExceededException: The level of configured provisioned throughput for the table was exceeded.

On a provisioned-capacity table, you've exceeded the read/write capacity units — either overall, or (more often) on a single partition. Unlike a ValidationException, this is retryable: the AWS SDKs retry it automatically with exponential backoff, so occasional ones are normal. Persistent ones mean real under-provisioning or a hot key.

Why it happens

  • Under-provisioned capacity for the actual traffic.
  • A hot partition — traffic concentrated on one partition key, so a single partition's share of capacity is exhausted while the table looks under-utilized overall.
  • Spiky traffic faster than auto-scaling can react (scaling takes minutes).
  • A large scan or bulk import consuming all capacity at once.
  • A GSI whose capacity is lower than the write rate — a throttled GSI throttles the base table.

How to fix it

  1. Switch to on-demand capacity if traffic is unpredictable — it scales automatically and this error effectively disappears (you pay per request instead).
  2. Raise provisioned RCU/WCU or enable auto-scaling with a sane target utilization if you stay on provisioned.
  3. Keep exponential-backoff retries — the SDK does this by default; don't disable it. Use adaptive retry mode for bursty workloads.
  4. Fix the hot partition — increase key cardinality / write-shard the hot key so load spreads across partitions.
  5. Throttle bulk jobs and cache hot reads (DAX or an app cache) to shed read pressure.

FAQ

How do I fix ProvisionedThroughputExceededException? You are reading or writing faster than the table or index can serve. Switch the table to on-demand capacity, raise provisioned RCU/WCU (or enable auto-scaling), keep the SDK default exponential-backoff retries, and spread traffic so a single partition key is not hot.

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.