ReplicaAlreadyExistsException
TL;DR: la región que está agregando ya está en el grupo de replicación de la tabla global. El complemento no es idempotente, por lo que una repetición de la misma solicitud (reintento, implementación repetida, IaC desviado) falla una vez que la primera tuvo éxito. Primero, escribe la tabla y solo cree réplicas que no estén allí, o trate esta excepción como "ya hecha" y continúe.
Qué significa
ReplicaAlreadyExistsException: The specified replica is already part of
the global table.La gestión de réplicas es un cambio en el plano de control con una precondición estricta: Create requiere que la Región esté ausente, Delete requiere que esté presente. Pedir crear eu-west-1 cuando eu-west-1 ya replica la tabla viola esa precondición — el estado que querías ya existe.
Por qué ocurre
- Un paso de aprovisionamiento reintentado o reproducido — el primer intento tuvo éxito (quizá después de que un tiempo de espera agotado ocultara ese éxito), y el reintento vuelve a añadir la misma Región.
- Desincronización de infraestructura como código — la réplica se añadió manualmente en la consola y luego el pipeline de IaC intenta añadirla de nuevo.
- Dos rutas de automatización en carrera — despliegues paralelos o trabajos de expansión de regiones enviando ambos la misma creación de réplica.
Cómo solucionarlo
Comprueba el grupo de replicación antes de mutarlo:
aws dynamodb describe-table --table-name orders \ --query 'Table.Replicas[].RegionName'Haz la operación idempotente — captura esta excepción al crear (y
ReplicaNotFoundExceptional borrar) y trátala como éxito; la tabla ya está en el estado deseado:catch (e) { if (e.name === 'ReplicaAlreadyExistsException') return; // desired state reached throw e; }Reconcilia la IaC con la realidad — importa la réplica añadida manualmente a tu stack en lugar de dejar que cada despliegue vuelva a intentar la creación.
Serializa los cambios de réplica — una actualización de réplica a la vez por tabla; espera a que la tabla vuelva a
ACTIVE(y a que la nueva réplica salga deCREATING) antes del siguiente cambio.Registra la Región en cada intento de creación. Cuando la IaC se reproduce, la excepción nombra la Región que ya existe — importa esa réplica a tu estado en lugar de volver a crearla.
Compruébalo en DynoTable
Después de que una creación de réplica tenga éxito, confirma que sirve datos — no solo que la API la aceptó. Cambia a la Región de la réplica con ⌘P, abre la tabla con ⌘K y navega por los Items. DynoTable muestra la copia de cada Región una al lado de la otra, así que un fallo parcial silencioso resulta evidente.
Antes de añadir otra Región, estima el coste continuo de las escrituras replicadas con la calculadora de precios. Configura un perfil por Región en Ajustes → Perfiles y ejecuta Test Connection en cada uno. Consulta Conectar con AWS e Instalación. Trata ReplicaAlreadyExistsException como éxito cuando la repetición de tu IaC alcanza el estado deseado — la Región ya está replicando.
Fuentes
- UpdateGlobalTable — Amazon DynamoDB API Reference (verificado el 2026-07-13)
- Global tables — Amazon DynamoDB Developer Guide (verificado el 2026-07-13)
Errores relacionados
- ReplicaNotFoundException — la imagen espejo: borrar una Región que no está en el grupo.
- GlobalTableNotFoundException — confusión entre la API legada y la actual.
- ResourceInUseException — la tabla está en plena modificación.
- Aprende: DynamoDB global tables
Referencias
- UpdateGlobalTable — Amazon DynamoDB API Reference
- UpdateTable — Amazon DynamoDB API Reference
- Global tables — Amazon DynamoDB Developer Guide
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.