ReplicaAlreadyExistsException

TL;DR — The Region you're adding is already in the global table's replication group. The add isn't idempotent, so a re-run of the same request (retry, replayed deploy, drifted IaC) fails once the first one succeeded. Describe the table first and only create replicas that aren't there — or treat this exception as "already done" and move on.

What it means

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

Replica management is a control-plane change with a hard precondition: Create requires the Region to be absent, Delete requires it present. Asking to create eu-west-1 when eu-west-1 already replicates the table violates that precondition — the state you wanted already exists.

Why it happens

  • A retried or replayed provisioning step — the first attempt succeeded (perhaps after a timeout hid the success), and the retry re-adds the same Region.
  • Infrastructure-as-code drift — the replica was added manually in the console, then the IaC pipeline tries to add it again.
  • Two automation paths racing — parallel deploys or region-expansion jobs both submitting the same replica create.

How to fix it

  1. Check the replication group before mutating it:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.Replicas[].RegionName'
  2. Make the operation idempotent — catch this exception on create (and ReplicaNotFoundException on delete) and treat it as success; the table is already in the desired state:

    catch (e) {
      if (e.name === 'ReplicaAlreadyExistsException') return; // desired state reached
      throw e;
    }
  3. Reconcile IaC with reality — import the manually-added replica into your stack rather than letting every deploy re-attempt the create.

  4. Serialize replica changes — one replica update at a time per table; wait for the table to return to ACTIVE (and the new replica to leave CREATING) before the next change.

Confirming a replica actually serves data — not just that the API accepted it — is a look-at-the-table job: the DynoTable desktop app browses each Region's replica directly, and the DynamoDB pricing calculator shows the ongoing cost the extra Region adds.

References

Last verified 2026-07-13 against the official AWS documentation linked above.

Work with DynamoDB without the Console

DynoTable is a fast desktop client for DynamoDB — browse tables, run SQL-style queries, and edit items locally.