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 Regionscodeus-east-2, wenn die Replica in us-east-1 liegt, 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-ÄnderungenUpdateTable kann nicht laufen, während die Tabelle noch von einer vorherigen Änderung UPDATING ist, 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

  1. Liste die aktuellen Replicas und ihren Status auf:
    aws dynamodb describe-table --table-name <Table> \
      --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}"
  2. Ziele auf eine Region, die tatsächlich in der Liste steht — kopiere den Regionscode exakt.
  3. Ändere eine Replica nach der anderen. Warte, bis die Tabelle zu ACTIVE zurückkehrt (und das vorherige Hinzufügen/Entfernen abgeschlossen ist), bevor das nächste Update erfolgt.
  4. Eine Replica entfernen, die bereits weg ist? Es gibt nichts zu tun — behandle die ReplicaNotFoundException bei einem Delete als bereits erfüllt.
  5. Nutze die aktuelle (2019.11.21) API — verwalte Replicas über UpdateTable ReplicaUpdates, 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

Verwandte Fehler

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Mit DynamoDB ohne die Console arbeiten

Ein schneller DynamoDB-Desktop-Client, der das echte SQL ausführt, das DynamoDB nicht kann — JOINs, GROUP BY, Aggregationen — mit visueller Bearbeitung und einem KI-Agenten auf deinen eigenen Bedrock-Schlüsseln.

30 Tage kostenlos testen, keine Kreditkarte — danach der Kostenlos-Tarif ohne Zeitlimit.