ReplicaAlreadyExistsException

In breve — La Region che stai aggiungendo è già nel gruppo di replica della global table. L'aggiunta non è idempotente, quindi una riesecuzione della stessa richiesta (retry, deploy rigiocato, IaC derivato) fallisce una volta che la prima è riuscita. Descrivi prima la tabella e crea solo le repliche che non ci sono — oppure tratta questa eccezione come "già fatto" e prosegui.

Cosa significa

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

La gestione delle repliche è una modifica del control-plane con una precondizione rigorosa: Create richiede che la Region sia assente, Delete richiede che sia presente. Chiedere di creare eu-west-1 quando eu-west-1 replica già la tabella viola quella precondizione — lo stato che volevi esiste già.

Perché accade

  • Un passo di provisioning riprovato o rigiocato — il primo tentativo è riuscito (forse dopo che un timeout ha nascosto il successo), e il retry ri-aggiunge la stessa Region.
  • Deriva dell'infrastructure-as-code — la replica è stata aggiunta manualmente nella console, poi la pipeline IaC tenta di aggiungerla di nuovo.
  • Due percorsi di automazione in race — deploy paralleli o job di espansione delle region che inviano entrambi la stessa creazione di replica.

Come correggerlo

  1. Controlla il gruppo di replica prima di mutarlo:

    aws dynamodb describe-table --table-name orders \
      --query 'Table.Replicas[].RegionName'
  2. Rendi l'operazione idempotente — intercetta questa eccezione sulla creazione (e ReplicaNotFoundException sull'eliminazione) e trattala come successo; la tabella è già nello stato desiderato:

    catch (e) {
      if (e.name === 'ReplicaAlreadyExistsException') return; // desired state reached
      throw e;
    }
  3. Riconcilia l'IaC con la realtà — importa la replica aggiunta manualmente nel tuo stack invece di lasciare che ogni deploy ritenti la creazione.

  4. Serializza le modifiche alle repliche — un aggiornamento di replica alla volta per tabella; attendi che la tabella torni ad ACTIVE (e che la nuova replica lasci lo stato CREATING) prima della modifica successiva.

Confermare che una replica serva effettivamente i dati — non solo che l'API l'abbia accettata — è un lavoro da guarda-la-tabella: l'app desktop DynoTable sfoglia direttamente la replica di ogni Region, e il calcolatore dei prezzi DynamoDB mostra il costo continuativo che la Region aggiuntiva comporta.

Errori correlati

References

Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

DynoTable è un client desktop veloce per DynamoDB — sfoglia le tabelle, esegui query in stile SQL e modifica gli Item localmente.