DynamoDB ReplicaNotFoundException
TL;DR — The region replica you're trying to update or remove isn't part of this global table. Usually a wrong region name, a replica that was already removed, or a call that races another in-flight replica update. Confirm the current replicas with DescribeTable, then target one that exists.
What it means
ReplicaNotFoundException: The specified replica <region> was not foundGlobal-tables operations (UpdateGlobalTable, or UpdateTable with a ReplicaUpdates/Delete) address a replica by its AWS region. This HTTP 400 means the region you named isn't currently a replica of the global table. It's client-side and not retryable until you target a real replica.
Why it happens
- Wrong region code —
us-east-2when the replica is inus-east-1, or a region that was never added. - Replica already removed — a delete against a region that a previous update already dropped from the table.
- Concurrent replica change — global tables allow one replica add/remove per update; a second overlapping call sees inconsistent membership.
- Confusing the primary with a replica — operating on a region that hosts no replica of this table.
- Version confusion — mixing the legacy Version 2017.11.29 (
GlobalTable) and current 2019.11.21 (replica-on-table) APIs.
How to fix it
- List the current replicas and their status:
aws dynamodb describe-table --table-name <Table> \ --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}" - Target a region that's actually in the list — copy the region code exactly.
- Change one replica at a time. Wait for the previous add/remove to reach
ACTIVEbefore the next update. - Removing a replica that's already gone? There's nothing to do — treat the
ReplicaNotFoundExceptionas already-satisfied for a delete. - Use the current (2019.11.21) API — manage replicas via
UpdateTableReplicaUpdates, not the legacy global-table API.
Managing tables across regions? The DynoTable desktop app shows each table's replicas and their status, so you can act on a region that's genuinely part of the global table.
Related errors
- ResourceNotFoundException — the table itself isn't found in the region/account.
- ResourceInUseException — a replica change conflicts with the table's current state.
- Learn: Global tables