DynamoDB RequestLimitExceeded
TL;DR — Você excedeu uma quota de taxa de requisição no nível de conta/tabela, não a capacidade provisionada de uma tabela. Tabelas on-demand têm padrão de 40.000 unidades de requisição de leitura e 40.000 de escrita por segundo. Mantenha os retries de backoff do SDK, eleve a quota no Service Quotas se o tráfego é real, e espalhe a carga para que uma única tabela/partição não seja o gargalo.
O que significa
RequestLimitExceeded: Throughput exceeds the current throughput limit for your
account. To request a limit increase, contact AWS Support.RequestLimitExceeded é uma das três exceções de throttling que o DynamoDB retorna no data plane (junto de ProvisionedThroughputExceededException e ThrottlingException). Ele sinaliza que você atingiu uma service quota no nível de conta — como a quota de throughput por tabela para tabelas on-demand — em vez de um teto de RCU/WCU provisionado por tabela. Ele retorna HTTP 400 e é retentável — os SDKs fazem backoff e tentam novamente automaticamente. O erro carrega campos ThrottlingReason (por exemplo, TableWriteAccountLimitExceeded ou IndexReadAccountLimitExceeded) mais o ARN do recurso afetado.
Por que isso acontece
- Teto padrão de tabela on-demand — cada tabela on-demand (e cada um de seus GSIs) tem uma quota padrão ajustável de 40.000 unidades de requisição de leitura e 40.000 de escrita por segundo. Consumo sustentado além disso faz throttle com
ThrottlingReasons no nível de conta até a quota ser elevada. - A tabela não pode escalar mais sob a quota de conta — segundo os docs da AWS, a taxa de requisições on-demand excede o throughput permitido da conta "and the table cannot be scaled further". Essas quotas são salvaguardas de contingência, e podem ser aumentadas.
- Uma tabela recém on-demand esquentando — uma tabela on-demand nova (ou uma recém-mudada para on-demand) serve instantaneamente até o dobro de seu pico anterior; um pico muito maior além disso pode fazer throttle antes de escalar.
- Uma única tabela quente absorvendo um pico de tráfego muito acima de seu pico recente.
Como corrigir
- Mantenha os retries de backoff exponencial ligados — o padrão do SDK trata picos transitórios. Use o modo de retry adaptativo para cargas de rajada. Não desabilite os retries.
- Eleve a quota — solicite um aumento no throughput on-demand por tabela (ou na quota de contagem/throughput de tabela da conta) no Service Quotas se o tráfego é legítimo e sustentado.
- Pré-aqueça antes de um pico conhecido — aumente o tráfego gradualmente em vez de pular direto para o pico, para que a escalada do on-demand fique à frente da demanda.
- Espalhe a carga — faça sharding de chaves quentes e distribua escritas para que uma tabela/partição não carregue o pico inteiro (padrões de partição quente).
- Cacheie leituras quentes (DAX ou um cache de app) para tirar a pressão de leitura abaixo do teto.
FAQ
Como o RequestLimitExceeded difere do ProvisionedThroughputExceededException? ProvisionedThroughputExceededException significa que uma tabela de capacidade provisionada excedeu seu próprio RCU/WCU configurado. RequestLimitExceeded significa que você atingiu uma quota de taxa de requisição no nível de conta ou tabela — mais frequentemente o padrão on-demand de 40.000 unidades de requisição de leitura e 40.000 de escrita por segundo — independentemente da configuração por tabela de uma única tabela.
RequestLimitExceeded é retentável? Sim. É um erro de throttling e os AWS SDKs o tentam novamente automaticamente com backoff exponencial. Ocorrências persistentes significam que você precisa de um aumento de quota ou de espalhar a carga, não de mais retries.
Erros relacionados
- ProvisionedThroughputExceededException — capacidade provisionada por tabela excedida.
- ThrottlingException — limitação de taxa de control-plane / geral.
- Aprenda: On-demand vs provisioned · Hot partitions
Referências
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Troubleshooting throttling in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- DynamoDB on-demand capacity mode — Amazon DynamoDB Developer Guide
Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.