DynamoDB LimitExceededException
TL;DR — Você emitiu muitas operações de control-plane de uma vez (ou atingiu o limite table/account). Até 500 tabelas e índices podem estar no estado CREATING/UPDATING/DELETING em sua conta ao mesmo tempo. Serialize suas operações de tabela, aguarde ACTIVE e tente novamente com espera.
O que significa
LimitExceededException: Too many operations for a given subscriber.Este é um erro de control-plane — ele vem de CreateTable, UpdateTable, DeleteTable, criação de índice, restaurações e chamadas semelhantes, não de GetItem/PutItem/Query. DynamoDB está informando que você excedeu um limite de simultaneidade ou de conta. É um HTTP 400 e o AWS o lista como OK para tentar novamente – a condição é eliminada quando as operações em andamento terminam.
Por que isso acontece
- Muitas operações simultâneas de table/index — o número cumulativo de tabelas e índices no estado
CREATING,DELETINGouUPDATINGnão pode exceder 500 por conta/região. (São permitidas até 500 operações de tabela simultâneas por conta —CreateTable,UpdateTable,DeleteTable,UpdateTimeToLive,RestoreTableFromBackup,RestoreTableToPointInTime— e apenas até 250 solicitações simultâneas ao criar tabelas com índices secundários.) - Implantações de pilha em massa — CloudFormation/CDK/Terraform criar ou destruir muitas tabelas (ou muitos GSIs) simultaneamente excede o orçamento de simultaneidade.
- Cotas de recursos da conta — atingindo a cota flexível de 2.500 tabelas por conta/região ou o limite de 50 trabalhos de importação simultâneos.
- Uso indevido de streams DynamoDB — chamando
GetRecordscom umLimitmaior que 1.000 ou mais de 2 processos lendo o mesmo fragmento de streams ao mesmo tempo. - Nota: um segundo
UpdateTableemitido enquanto a mesma tabela ainda éUPDATINGaparece como ResourceInUseException, não este erro - mas ambos significam "aguarde peloACTIVEprimeiro".
Como corrigir
- Serializar operações do control-plane — espere que uma tabela (e cada GSI) se torne
ACTIVEantes de emitir a próxima alteração nela. EnqueteDescribeTablee portão emTableStatus === 'ACTIVE'. - Tentar novamente com espera exponencial — o limite é transitório; uma nova tentativa geralmente é bem-sucedida quando as operações em voo são esgotadas.
- Acelere implantações em massa — divida uma pilha grande para não criar centenas de tabelas/GSIs de uma vez ou adicione ordenação
DependsOnexplícita para que não sejam disparadas todas juntas. - Verifique suas cotas de serviço — se você estiver próximo do limite de tabelas por conta, solicite um aumento de cota nas cotas de serviço em vez de tentar novamente.
- Adicione GSIs um de cada vez — você pode criar ou excluir apenas um índice secundário global por operação
UpdateTable, portanto serialize as alterações de índice e aguarde cada preenchimento.
FAQ
Como faço para corrigir LimitExceededException em DynamoDB? Pare de emitir operações de control-plane (alterações CreateTable/UpdateTable/DeleteTable/index) em paralelo. Aguarde até que cada tabela e índice cheguem a ACTIVE antes da próxima alteração, mantenha a contagem de tabelas em CREATING/UPDATING/DELETING abaixo do limite da conta e tente novamente com espera exponencial.
LimitExceededException é um erro de limitação? É um erro de simultaneidade/limit do control-plane, não uma limitação do data-plane. A limitação do data-plane surge como ProvisionedThroughputExceededException, ThrottlingException ou RequestLimitExceeded.
Aponte o DynoTable para o Local
DynoTable é um cliente de data-plane – GetItem, Query e Scan não consomem
o orçamento de simultaneidade do control-plane que esse erro protege. Se um script de implantação for atingido
LimitExceededException ao criar tabelas, use DynoTable para navegar nas tabelas
que já atingiu ACTIVE e valide o esquema em Configurações da tabela enquanto
suas novas tentativas de IaC. Para pilhas locais, execute DynamoDB Local com -sharedDb e
conectar através de um perfil local (Running DynamoDB Local) para
você pode inspecionar implantações parciais sem esperar que cada GSI termine no AWS.
O planejador de design de tabela única ajuda a esboçar
formas de tabela antes de disparar outro CreateTable em uma conta ocupada.
Erros relacionados
- ResourceInUseException — uma operação em uma tabela que já está sendo modificada ou já existe.
- ThrottlingException — limitação de taxa data/control-plane.
- RequestLimitExceeded — limite de taxa de solicitação da conta.
- Aprenda: migrações DynamoDB
Fontes
Tratamento de erros com DynamoDB — Guia do desenvolvedor do Amazon DynamoDB (verificado em 13/07/2026)
UpdateTable — Referência Amazon DynamoDB API (verificado em 13/07/2026)
Cotas no Amazon DynamoDB — Guia do desenvolvedor do Amazon DynamoDB (verificado em 13/07/2026)