ReplicaAlreadyExistsException

TL;DR — La Región que estás añadiendo ya está en el grupo de replicación de la tabla global. La adición no es idempotente, así que una repetición de la misma petición (reintento, despliegue reproducido, IaC desincronizada) falla una vez que la primera tuvo éxito. Describe primero la tabla y crea solo las réplicas que no estén — o trata esta excepción como "ya hecho" y sigue adelante.

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

  1. Comprueba el grupo de replicación antes de mutarlo:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.Replicas[].RegionName'
  2. Haz la operación idempotente — captura esta excepción al crear (y ReplicaNotFoundException al 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;
    }
  3. 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.

  4. 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 de CREATING) antes del siguiente cambio.

Confirmar que una réplica realmente sirve datos — no solo que la API la aceptó — es cuestión de mirar la tabla: la aplicación de escritorio DynoTable navega directamente por la réplica de cada Región, y la calculadora de precios de DynamoDB muestra el coste continuo que añade la Región adicional.

Errores relacionados

References

Última verificación el 2026-07-13 con la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

DynoTable es un cliente de escritorio rápido para DynamoDB: explora tablas, ejecuta consultas estilo SQL y edita Items localmente.