ReplicaAlreadyExistsException

TL;DR — Die Region, die du hinzufügst, ist bereits in der Replikationsgruppe der Global Table. Das Hinzufügen ist nicht idempotent, sodass ein erneuter Lauf desselben Requests (Retry, wiederholtes Deployment, abgedrifteter IaC) fehlschlägt, sobald der erste erfolgreich war. Beschreibe zuerst die Tabelle und erstelle nur Replicas, die noch nicht da sind — oder behandle diese Exception als "bereits erledigt" und mach weiter.

Was es bedeutet

ReplicaAlreadyExistsException: The specified replica is already part of
the global table.

Die Replica-Verwaltung ist eine Control-Plane-Änderung mit einer harten Vorbedingung: Create verlangt, dass die Region fehlt, Delete verlangt, dass sie vorhanden ist. eu-west-1 erstellen zu wollen, wenn eu-west-1 die Tabelle bereits repliziert, verletzt diese Vorbedingung — der Zustand, den du wolltest, existiert bereits.

Warum es passiert

  • Ein wiederholter oder erneut abgespielter Provisioning-Schritt — der erste Versuch war erfolgreich (vielleicht nachdem ein Timeout den Erfolg verdeckt hat), und der Retry fügt dieselbe Region erneut hinzu.
  • Infrastructure-as-Code-Drift — die Replica wurde manuell in der Konsole hinzugefügt, dann versucht die IaC-Pipeline, sie erneut hinzuzufügen.
  • Zwei Automatisierungspfade im Wettlauf — parallele Deployments oder Region-Erweiterungs-Jobs, die beide dasselbe Replica-Create einreichen.

So behebst du es

  1. Prüfe die Replikationsgruppe, bevor du sie veränderst:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.Replicas[].RegionName'
  2. Mache die Operation idempotent — fange diese Exception beim Erstellen ab (und ReplicaNotFoundException beim Löschen) und behandle sie als Erfolg; die Tabelle ist bereits im gewünschten Zustand:

    catch (e) {
      if (e.name === 'ReplicaAlreadyExistsException') return; // desired state reached
      throw e;
    }
  3. Bringe IaC mit der Realität in Einklang — importiere die manuell hinzugefügte Replica in deinen Stack, statt bei jedem Deployment das Create erneut zu versuchen.

  4. Serialisiere Replica-Änderungen — ein Replica-Update nach dem anderen pro Tabelle; warte, bis die Tabelle zu ACTIVE zurückkehrt (und die neue Replica den Status CREATING verlässt), bevor die nächste Änderung erfolgt.

Zu bestätigen, dass eine Replica tatsächlich Daten bereitstellt — nicht nur, dass die API sie akzeptiert hat — ist eine Aufgabe fürs direkte Draufschauen: Die DynoTable-Desktop-App durchsucht die Replica jeder Region direkt, und der DynamoDB-Preisrechner zeigt die laufenden Kosten, die die zusätzliche Region verursacht.

Verwandte Fehler

Referenzen

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

Mit DynamoDB ohne die Console arbeiten

DynoTable ist ein schneller Desktop-Client für DynamoDB — durchsuche Tabellen, führe SQL-artige Queries aus und bearbeite Items lokal.