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

  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. 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

Referências

Verificado pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

Um cliente desktop rápido para DynamoDB que roda o SQL de verdade que o DynamoDB não consegue — JOINs, GROUP BY, agregações — com edição visual e um agente de IA com suas próprias chaves do Bedrock.

Teste grátis de 30 dias, sem cartão de crédito — depois o plano Grátis sem limite de tempo.