DynamoDB global table version mismatch
TL;DR — DynamoDB kennt zwei Global-Table-Versionen: 2017.11.29 (Legacy) und 2019.11.21 (Current). Eine Legacy-Global-Table anzulegen oder ein Replikat hinzuzufügen scheitert, wenn die beteiligten Tabellen die Anforderungen nicht erfüllen — Legacy-Replikate müssen leer sein, denselben Namen, dasselbe Key-Schema und passende GSIs haben, DynamoDB Streams (New und Old Image) aktiviert haben und eine einheitliche Write Capacity nutzen — und die APIs der einen Version auf die Tabellen der anderen zu richten scheitert komplett. Gleich die Konfiguration jedes Replikats an (oder steig auf die Current-Version um) und wiederhole.
Was es bedeutet
ValidationException: Cannot create a global table from a table with ...
ValidationException: ... replicas must have the same ... across all regionsDie Legacy-Version (2017.11.29) fügt unabhängig erstellte regionale Tabellen zu einer benannten Global Table zusammen, also verlangt sie, dass die Mitgliedstabellen exakt zusammenpassen. Die Current-Version (2019.11.21) verwaltet die Replikation auf der Tabelle selbst — du fügst Replikate mit UpdateTable hinzu — und synchronisiert TTL-, Auto-Scaling-, GSI- und Encryption-at-Rest-Einstellungen automatisch über die Replikate hinweg. Versions-Mismatch-Fehler treten auf, wenn die Tabellen, die du kombinierst, uneinig sind, oder wenn das Tooling mit der API-Oberfläche der falschen Version spricht.
Warum es passiert
- Eine Replikattabelle ist nicht leer — die Legacy-
CreateGlobalTable-/UpdateGlobalTable-APIs verlangen, dass jede Mitgliedstabelle keine Daten enthält. - Namen- oder Key-Schema-Mismatch — alle Replikate müssen denselben Tabellennamen und Primärschlüssel teilen.
- Nicht passende GSIs — Global Secondary Indexes müssen über die Replikate hinweg in Namen und in Hash-/Sort-Key übereinstimmen.
- Streams aus oder falscher View-Typ — jedes Legacy-Replikat braucht DynamoDB Streams aktiviert mit sowohl den neuen als auch den alten Images des Items.
- Inkonsistente Schreibkapazität — AWS verlangt, dass Schreibkapazitätseinstellungen konsistent über die Replikattabellen und passenden Sekundärindizes gesetzt sind (Auto-Scaling empfohlen oder gleiche replizierte Write Capacity Units).
- Das Mischen der zwei Versionen — die Legacy-APIs (
DescribeGlobalTable,UpdateGlobalTable) auf eine Current-Version-Tabelle zu richten gibt GlobalTableNotFoundException zurück, statt zu funktionieren. - Veraltete AWS CLI/SDK — eine Version, die dem 2019.11.21-Modell vorausgeht, kann keine
UpdateTable-basierte Replikatverwaltung antreiben.
So behebst du es
- Vereinheitliche die beteiligten Tabellen über alle Regionen — gleicher Name und gleiches Key-Schema, passende GSIs, aktivierte Streams mit New + Old Image und einheitliche Write-Capacity-/Auto-Scaling-Ziele.
- Prüf den Ist-Zustand mit
DescribeTablepro Region (Current) oderDescribeGlobalTableSettings(eine reine Legacy-API) und korrigier Abweichungen entsprechend mitUpdateTablebzw.UpdateGlobalTableSettings. - Steig bewusst von Legacy auf Current um, über den Update version-Ablauf in der Konsole — er braucht die Berechtigung
dynamodb:UpdateGlobalTableversionin jeder Replikat-Region, und die Replikate bedienen während des Upgrades weiter Reads und Writes. - Aktualisier deine AWS CLI bzw. dein SDK auf einen aktuellen Stand, bevor du Replikate der Current-Version verwaltest.
- Füg Replikate an eine kompatible Basistabelle an — Replikate der Current-Version kommen per
UpdateTabledazu (die Tabelle darf bereits Daten enthalten, aber in der Zielregion darf noch keine Tabelle dieses Namens existieren); Legacy-Replikate müssen leer starten. - Aktivier Streams vor dem Legacy-Create. Jedes Legacy-Replikat braucht DynamoDB Streams mit New und Old Image — verifizier das mit
DescribeTablein jeder Region.
In DynoTable messen
Compare schema, GSIs, and stream settings across Regions bevor du create a global table — switch with ⌘P, open each replica with ⌘K, and expand the Indexes and Stream panels side by side.
Estimate replicated write cost with the Pricing-Rechner. Configure each Region under Einstellungen → Profile with Verbindung testen. Siehe Mit AWS verbinden und Installation.
Quellen
- DynamoDB global tables versions (verifiziert 2026-07-13)
- CreateGlobalTable — Amazon DynamoDB API Reference (verifiziert 2026-07-13)
Verwandte Fehler
- ResourceInUseException — eine Replikattabelle/-region ist bereits in Verwendung.
- ReplicaNotFoundException — eine referenzierte Replikatregion existiert nicht.
- Learn: DynamoDB Global Tables
Referenzen
- CreateGlobalTable — Amazon DynamoDB API Reference
- UpdateGlobalTable — Amazon DynamoDB API Reference
- UpdateTable — Amazon DynamoDB API Reference
- DynamoDB global tables versions (determining and upgrading) — Amazon DynamoDB Developer Guide
Zuletzt verifiziert am 2026-07-13 gegen die offizielle, oben verlinkte AWS-Dokumentation.