DynamoDB ItemCollectionSizeLimitExceededException

TL;DR — Only tables with a Local Secondary Index (LSI) have this limit: all items sharing one partition key (the "item collection") can total at most 10 GB. One of your partition keys crossed it. Redesign so no single partition key accumulates unbounded data — or drop the LSI.

What it means

ItemCollectionSizeLimitExceededException: Collection size exceeded.

An item collection is every item with the same partition key value — in the base table and in all of its LSIs. Tables without an LSI have no per-collection size cap (a table's overall size is unconstrained). Tables with an LSI cap each collection at 10 GB, and this error means a write would push one collection past it. The limit doesn't apply to global secondary indexes.

It comes back as HTTP 400, and AWS lists it as OK to retry — but a retry only succeeds once the collection has shrunk back under 10 GB. Reads, and writes that reduce the collection's size (deletes, removing or trimming attributes), are still allowed, so you can dig your way out.

Why it happens

  • A hot/unbounded partition key — one key (a big tenant, a popular user) accumulates far more items than others.
  • An LSI you may not need — the 10 GB cap exists only because the table has an LSI.
  • Append-only growth under a single partition key over time.

How to fix it

  1. Re-shard the partition key. Split the oversized entity across multiple partition keys (e.g. TENANT#42#1, TENANT#42#2) so no single collection grows unbounded.
  2. Replace the LSI with a GSI. GSIs have their own partition key and no item-collection size limit — for most access patterns a GSI is the better choice anyway (and can be added/removed after table creation, unlike an LSI).
  3. Archive cold items out of the hot collection (to a separate table or S3).
  4. Monitor collection size before you hit the wall. ReturnItemCollectionMetrics: SIZE on writes returns estimated collection size so you can alert before writes fail.

Spot this in DynoTable

Find which partition keys carry the most items before a collection hits 10 GB — open the table with ⌘K, sort by partition key, and scan for keys with unusually long item lists. The item size calculator helps estimate per-item growth when you plan a re-shard.

Use the pricing calculator to compare LSI write amplification against a GSI alternative. Switch profiles with ⌘P; configure them under Settings → Profiles. See Connect to AWS and Install.

Sources

References

Last verified 2026-07-13 against the official AWS documentation linked above.

Work with DynamoDB without the Console

A fast DynamoDB desktop client that runs the real SQL DynamoDB can’t — JOINs, GROUP BY, aggregates — with visual editing and an AI agent on your own Bedrock keys.

Free 30-day trial, no credit card — then the Free plan with no time limit.