DynamoDB ReplicaNotFoundException
TL;DR — Le réplica de région que tu essaies de mettre à jour ou de supprimer ne fait pas partie de cette table globale. Habituellement un nom de région erroné, un réplica qui a déjà été supprimé, ou un appel qui entre en concurrence avec une autre mise à jour de réplica en cours. Confirme les réplicas actuels avec DescribeTable, puis vise-en un qui existe.
Ce que ça signifie
ReplicaNotFoundException: The specified replica is no longer part of the global table.Les opérations de tables globales (UpdateGlobalTable, ou UpdateTable avec un ReplicaUpdates/Delete) adressent un réplica par sa région AWS. Ce HTTP 400 signifie que la région que tu as nommée n'est pas actuellement un réplica de la table globale. C'est côté client et non réessayable tant que tu ne vises pas un réplica réel.
Pourquoi ça arrive
- Code de région erroné —
us-east-2alors que le réplica est dansus-east-1, ou une région qui n'a jamais été ajoutée. - Réplica déjà supprimé — une suppression contre une région qu'une mise à jour précédente a déjà retirée de la table.
- Changements de réplica qui se chevauchent —
UpdateTablene peut pas s'exécuter tant que la table est encoreUPDATINGd'un changement précédent, et AWS recommande d'émettre une requête distincte pour chaque ajout/retrait de réplica ; une automatisation en concurrence peut viser un réplica qu'un autre job a déjà retiré. - Confondre la principale avec un réplica — opérer sur une région qui n'héberge aucun réplica de cette table.
- Confusion de version — mélanger l'API legacy Version 2017.11.29 (
GlobalTable) et l'API current 2019.11.21 (réplica-sur-table).
Comment le corriger
- Liste les réplicas actuels et leur statut :
aws dynamodb describe-table --table-name <Table> \ --query "Table.Replicas[].{Region:RegionName,Status:ReplicaStatus}" - Vise une région qui est réellement dans la liste — copie le code de région exactement.
- Change un réplica à la fois. Attends que la table revienne à
ACTIVE(et que l'ajout/retrait précédent se termine) avant la mise à jour suivante. - Tu supprimes un réplica déjà parti ? Il n'y a rien à faire — traite la
ReplicaNotFoundExceptioncomme déjà satisfaite pour une suppression. - Utilise l'API current (2019.11.21) — gère les réplicas via
UpdateTableReplicaUpdates, pas l'API legacy de table globale.
Tu gères des tables à travers plusieurs régions ? L'application desktop DynoTable affiche les réplicas de chaque table et leur statut, pour que tu agisses sur une région qui fait vraiment partie de la table globale.
Vérifie d’abord dans DynoTable
Ouvre la table dans DynoTable et vérifie dans les stats de table / la liste de réplicas quelles régions existent réellement avant de lancer un UpdateTable ReplicaUpdates. Change de profil avec ⌘P pour bien regarder le compte propriétaire de la table globale. Quand une région de réplica a disparu, DynoTable l'omet simplement — il n'y a pas de carte de console périmée sur laquelle cliquer.
Recoupe le code de région avec la liste en direct, puis réémets le changement de plan de contrôle depuis ton IaC ou la CLI. Pour les lectures quotidiennes entre réplicas, garde un profil DynoTable par région et change avec ⌘1–⌘9 plutôt que de deviner des ARN. Le query builder reste sur la région du profil actif : tu ne mélangeras jamais une Query us-east-1 avec un nom de table us-west-2.
Sources
- UpdateGlobalTable — Amazon DynamoDB API Reference (vérifié le 2026-07-13)
- Global tables — Amazon DynamoDB Developer Guide (vérifié le 2026-07-13)
Erreurs liées
- ResourceNotFoundException — la table elle-même n'est pas trouvée dans la région/le compte.
- ResourceInUseException — un changement de réplica entre en conflit avec l'état actuel de la table.
- En savoir plus : Global tables
Références
- 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
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.