DynamoDB ReplicaNotFoundException
TL;DR — A réplica da região que você está tentando atualizar ou remover não faz parte desta tabela global. Geralmente, um nome de região errado, uma réplica que já foi removida ou uma chamada que executa outra atualização de réplica em andamento. Confirme as réplicas atuais com DescribeTable e, em seguida, direcione uma que exista.
O que significa
ReplicaNotFoundException: The specified replica is no longer part of the global table.As operações de tabelas globais (UpdateGlobalTable ou UpdateTable com ReplicaUpdates/Delete) endereçam uma réplica por sua região AWS. Este HTTP 400 significa que a região nomeada não é atualmente uma réplica da tabela global. É do lado do cliente e não pode ser repetida até que você tenha como alvo uma réplica real.
Por que isso acontece
- Código de região errado —
us-east-2quando a réplica está emus-east-1ou uma região que nunca foi adicionada. - Réplica já removida — uma exclusão em uma região que uma atualização anterior já foi removida da tabela.
- Alterações de réplica sobrepostas —
UpdateTablenão pode ser executado enquanto a tabela ainda éUPDATINGde uma alteração anterior e AWS recomenda emitir uma solicitação separada para cada réplica add/remove; a automação de corridas pode ter como alvo uma réplica de outro trabalho já removido. - Confundir o primário com uma réplica — operando em uma região que não hospeda nenhuma réplica desta tabela.
- Confusão de versões — misturando a versão legada 2017.11.29 (
GlobalTable) e os atuais 2019.11.21 (réplica na tabela) APIs.
Como corrigir
- Liste as réplicas atuais e seus status:
aws dynamodb describe-table --table-name <Table> \ --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}" - Mire uma região que esteja de fato na lista — copie o código da região exatamente.
- Altere uma réplica por vez. Espere a tabela voltar para
ACTIVE(e a adição/remoção anterior terminar) antes da próxima atualização. - Removendo uma réplica que já sumiu? Não há nada a fazer — trate o
ReplicaNotFoundExceptioncomo já-satisfeito para uma exclusão. - Use a API atual (2019.11.21) — gerencie réplicas via
UpdateTableReplicaUpdates, não a API legada de global table.
Gerenciando tabelas entre regions? O app desktop DynoTable mostra as réplicas de cada tabela e seu status, para que você possa agir em uma region que genuinamente faz parte da global table.
Confira primeiro no DynoTable
Abra a tabela no DynoTable e confira as estatísticas da tabela / a lista de réplicas para ver quais regions de fato existem antes de rodar UpdateTable ReplicaUpdates. Troque de perfil com ⌘P para estar olhando a conta que é dona da global table. Quando uma region réplica sumiu, o DynoTable simplesmente a omite — não há card obsoleto de console para clicar.
Confira o código da region contra a lista ao vivo e depois reemita a mudança de control plane pelo IaC ou pela CLI. Para leituras do dia a dia entre réplicas, mantenha um perfil do DynoTable por region e troque com ⌘1–⌘9 em vez de adivinhar ARNs. O query builder permanece na region do perfil ativo, então você nunca mistura uma Query em us-east-1 com um nome de tabela de us-west-2.
Fontes
- UpdateGlobalTable — Amazon DynamoDB API Reference (verificado em 2026-07-13)
- Global tables — Amazon DynamoDB Developer Guide (verificado em 2026-07-13)
Erros relacionados
- ResourceNotFoundException — a própria tabela não é encontrada na region/conta.
- ResourceInUseException — uma mudança de réplica conflita com o estado atual da tabela.
- Aprenda: Global tables
Referências
- 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 pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.