DynamoDB ReplicaNotFoundException
TL;DR — Das Regions-Replikat, das du aktualisieren oder entfernen willst, gehört nicht zu dieser Global Table. Meist ein falscher Regionsname, ein bereits entferntes Replikat, oder ein Aufruf, der mit einem anderen laufenden Replikat-Update kollidiert. Bestätige die aktuellen Replikate mit DescribeTable und ziel dann auf eines, das existiert.
Was es bedeutet
ReplicaNotFoundException: The specified replica is no longer part of the global table.Global-Tables-Operationen (UpdateGlobalTable oder UpdateTable mit einem ReplicaUpdates/Delete) adressieren eine Replica über ihre AWS-Region. Dieses HTTP 400 bedeutet, dass die von dir genannte Region derzeit keine Replica der Global Table ist. Er ist clientseitig und nicht wiederholbar, bis du auf eine echte Replica zielst.
Warum es passiert
- Falscher Regionscode —
us-east-2, wenn die Replica inus-east-1liegt, oder eine Region, die nie hinzugefügt wurde. - Replica bereits entfernt — ein Delete gegen eine Region, die ein vorheriges Update bereits aus der Tabelle entfernt hat.
- Überlappende Replica-Änderungen —
UpdateTablekann nicht laufen, während die Tabelle noch von einer vorherigen ÄnderungUPDATINGist, und AWS empfiehlt, einen separaten Request für jedes Hinzufügen/Entfernen einer Replica abzusetzen; kollidierende Automatisierung kann auf eine Replica zielen, die ein anderer Job bereits entfernt hat. - Verwechslung des Primären mit einer Replica — Operation auf einer Region, die keine Replica dieser Tabelle hostet.
- Versionsverwirrung — Vermischung der Legacy-Version 2017.11.29 (
GlobalTable) und der aktuellen 2019.11.21 (Replica-auf-Tabelle) APIs.
So behebst du es
- Liste die aktuellen Replicas und ihren Status auf:
aws dynamodb describe-table --table-name <Table> \ --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}" - Ziele auf eine Region, die tatsächlich in der Liste steht — kopiere den Regionscode exakt.
- Ändere eine Replica nach der anderen. Warte, bis die Tabelle zu
ACTIVEzurückkehrt (und das vorherige Hinzufügen/Entfernen abgeschlossen ist), bevor das nächste Update erfolgt. - Eine Replica entfernen, die bereits weg ist? Es gibt nichts zu tun — behandle die
ReplicaNotFoundExceptionbei einem Delete als bereits erfüllt. - Nutze die aktuelle (2019.11.21) API — verwalte Replicas über
UpdateTableReplicaUpdates, nicht über die Legacy-Global-Table-API.
Tabellen über Regionen hinweg verwalten? Die DynoTable-Desktop-App zeigt die Replicas jeder Tabelle und deren Status, sodass du auf eine Region einwirken kannst, die wirklich Teil der Global Table ist.
Zuerst in DynoTable prüfen
Open the table in DynoTable and check the table stats / replica list for the regions that actually exist bevor du run UpdateTable ReplicaUpdates. Wechsle Profile mit ⌘P so you are looking at the account that owns the global table. When a replica region is gone, DynoTable simply omits it — there is no stale console card to click.
Cross-check the region code against the live list, then re-issue the control-plane change from IaC or the CLI. For day-to-day reads across replicas, keep one DynoTable profile per region and switch with ⌘1–⌘9 instead of guessing ARNs. The Query Builder stays on the active profile region so you never mix a us-east-1 Query with a us-west-2 table name.
Quellen
- UpdateGlobalTable — Amazon DynamoDB API Reference (verifiziert 2026-07-13)
- Global tables — Amazon DynamoDB Developer Guide (verifiziert 2026-07-13)
Verwandte Fehler
- ResourceNotFoundException — die Tabelle selbst wird in der Region/im Konto nicht gefunden.
- ResourceInUseException — eine Replica-Änderung steht im Konflikt mit dem aktuellen Zustand der Tabelle.
- Learn: Global Tables
Referenzen
- UpdateGlobalTable — Amazon DynamoDB API Reference
- UpdateTable — Amazon DynamoDB API Reference
- Global tables — Amazon DynamoDB Developer Guide
- Determining the global table version you are using — Amazon DynamoDB Developer Guide
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.