DynamoDB ItemCollectionSizeLimitExceededException
TL;DR — Nur Tabellen mit einem Local Secondary Index (LSI) haben dieses Limit: Alle Items mit demselben Partition Key (die „Item Collection") dürfen zusammen höchstens 10 GB groß sein. Einer deiner Partition Keys hat das überschritten. Gestalte das Modell so um, dass kein einzelner Partition Key unbegrenzt Daten ansammelt — oder wirf den LSI raus.
Was es bedeutet
ItemCollectionSizeLimitExceededException: Collection size exceeded.Eine Item Collection ist jedes Item mit demselben Partition-Key-Wert — in der Basistabelle und in allen ihren LSIs. Tabellen ohne LSI haben keine Größenobergrenze pro Collection (die Gesamtgröße einer Tabelle ist unbeschränkt). Tabellen mit LSI begrenzen jede Collection auf 10 GB, und dieser Fehler bedeutet, dass ein Schreibvorgang eine Collection darüber hinaus drücken würde. Das Limit gilt nicht für Global Secondary Indexes.
Er kommt als HTTP 400 zurück, und AWS listet ihn als wiederholbar auf — aber ein erneuter Versuch gelingt erst, wenn die Collection wieder unter 10 GB geschrumpft ist. Reads sowie Writes, die die Größe der Collection reduzieren (Deletes, Entfernen oder Kürzen von Attributen), sind weiterhin erlaubt, sodass du dich herausarbeiten kannst.
Warum es passiert
- Ein heißer/unbegrenzter Partition Key — ein Key (ein großer Mandant, ein beliebter Nutzer) häuft weit mehr Items an als andere.
- Ein LSI, den du vielleicht nicht brauchst — die 10-GB-Obergrenze existiert nur, weil die Tabelle einen LSI hat.
- Rein additives Wachstum unter einem einzelnen Partition Key über die Zeit.
So behebst du es
- Sharde den Partition Key neu. Verteil die übergroße Entität auf mehrere Partition Keys (etwa
TENANT#42#1,TENANT#42#2), damit keine einzelne Collection unbegrenzt wächst. - Ersetz den LSI durch einen GSI. GSIs haben einen eigenen Partition Key und kein Item-Collection-Größenlimit — für die meisten Zugriffsmuster ist ein GSI ohnehin die bessere Wahl (und lässt sich anders als ein LSI nach der Tabellenerstellung hinzufügen und entfernen).
- Archivier kalte Items aus der heißen Collection heraus (in eine separate Tabelle oder nach S3).
- Beobachte die Collection-Größe, bevor du an die Wand fährst.
ReturnItemCollectionMetrics: SIZEliefert bei Writes eine geschätzte Collection-Größe zurück, sodass du alarmieren kannst, bevor Writes scheitern.
In DynoTable erkennen
Find which partition keys carry the most items before a collection hits 10 GB — öffne die Tabelle mit ⌘K, sort by partition key, and scan for keys with unusually long item lists. The Item-Size-Rechner helps estimate per-item growth wenn du plan a re-shard.
Use the Pricing-Rechner um LSI-Write-Amplification gegen eine GSI-Alternative zu vergleichen. Wechsle Profile mit ⌘P; configure them under Einstellungen → Profile. Siehe Mit AWS verbinden und Installation.
Quellen
- Local secondary indexes (verifiziert 2026-07-13)
- Error handling with DynamoDB (verifiziert 2026-07-13)
Verwandte Fehler
- Item size has exceeded the maximum allowed size — die 400-KB-Obergrenze pro Item.
- ProvisionedThroughputExceededException
- Learn: GSI vs LSI · Item Collections
Referenzen
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Local secondary indexes — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.