DynamoDB ReplicaNotFoundException
TL;DR: la réplica de la región que estás intentando actualizar o eliminar no forma parte de esta tabla global. Por lo general, un nombre de región incorrecto, una réplica que ya se eliminó o una llamada que acelera otra actualización de réplica en curso. Confirme las réplicas actuales con DescribeTable y luego seleccione una que exista.
Qué significa
ReplicaNotFoundException: The specified replica is no longer part of the global table.Las operaciones de tablas globales (UpdateGlobalTable, o UpdateTable con un ReplicaUpdates/Delete) se dirigen a una réplica por su región de AWS. Este HTTP 400 significa que la región que nombraste no es actualmente una réplica de la tabla global. Es del lado del cliente y no es reintentable hasta que apuntes a una réplica real.
Por qué ocurre
- Código de región equivocado —
us-east-2cuando la réplica está enus-east-1, o una región que nunca se añadió. - Réplica ya eliminada — un borrado contra una región que una actualización anterior ya quitó de la tabla.
- Cambios de réplica solapados —
UpdateTableno puede ejecutarse mientras la tabla sigue enUPDATINGpor un cambio anterior, y AWS recomienda emitir una petición separada para cada adición/eliminación de réplica; la automatización en carrera puede apuntar a una réplica que otro trabajo ya eliminó. - Confundir la primaria con una réplica — operar sobre una región que no aloja ninguna réplica de esta tabla.
- Confusión de versiones — mezclar la API legada Versión 2017.11.29 (
GlobalTable) y la actual 2019.11.21 (réplica en la tabla).
Cómo solucionarlo
- Lista las réplicas actuales y su estado:
aws dynamodb describe-table --table-name <Table> \ --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}" - Apunta a una región que esté realmente en la lista — copia el código de región exactamente.
- Cambia una réplica a la vez. Espera a que la tabla vuelva a
ACTIVE(y a que termine la adición/eliminación anterior) antes de la siguiente actualización. - ¿Eliminar una réplica que ya no está? No hay nada que hacer — trata el
ReplicaNotFoundExceptioncomo ya satisfecho para un borrado. - Usa la API actual (2019.11.21) — gestiona las réplicas mediante
UpdateTableReplicaUpdates, no la API legada de tablas globales.
¿Gestionando tablas entre regiones? La aplicación de escritorio DynoTable muestra las réplicas de cada tabla y su estado, para que actúes sobre una región que realmente forme parte de la tabla global.
Revisa primero en DynoTable
Abre la tabla en DynoTable y revisa las estadísticas de la tabla / la lista de réplicas para ver qué regiones existen realmente antes de ejecutar UpdateTable ReplicaUpdates. Cambia de perfil con ⌘P para asegurarte de estar mirando la cuenta propietaria de la tabla global. Cuando una región de réplica ya no está, DynoTable simplemente la omite — no hay una tarjeta obsoleta de la consola que puedas pulsar.
Contrasta el código de región con la lista en vivo y luego vuelve a emitir el cambio de plano de control desde la IaC o la CLI. Para las lecturas del día a día entre réplicas, mantén un perfil de DynoTable por región y cambia con ⌘1–⌘9 en lugar de adivinar ARNs. El query builder se queda en la región del perfil activo, así que nunca mezclas una Query de us-east-1 con un nombre de tabla de us-west-2.
Fuentes
- UpdateGlobalTable — Amazon DynamoDB API Reference (verificado el 2026-07-13)
- Global tables — Amazon DynamoDB Developer Guide (verificado el 2026-07-13)
Errores relacionados
- ResourceNotFoundException — la propia tabla no se encuentra en la región/cuenta.
- ResourceInUseException — un cambio de réplica entra en conflicto con el estado actual de la tabla.
- Aprende: Global tables
Referencias
- 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
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.