DynamoDB ThrottlingException

TL;DR — Deine Anfragerate hat ein Limit überschritten. Der Fehler ist wiederholbar — geh in den Backoff und versuch es erneut (das SDK macht das standardmäßig). Bleibt er bestehen, rufst du eine Control-Plane-API (CreateTable, UpdateTable, DescribeTable) zu oft auf oder stößt an ein kontoweites Limit.

Was es bedeutet

ThrottlingException: Rate of requests exceeds the allowed throughput.

ThrottlingException (und der verwandte RequestLimitExceeded) signalisiert ein Ratelimit, das nicht die eigene RCU/WCU-Einstellung einer provisionierten Tabelle ist. Er kommt als HTTP 400 zurück und ist wiederholbar. Am häufigsten tritt er bei zu schnell ausgeführten Control-Plane-Operationen auf und kann — bei On-Demand-Tabellen — für jede Data-Plane-Operation zurückgegeben werden, wenn die Anfragerate zu hoch ist (einschließlich, wenn du einen konfigurierten maximalen On-Demand-Durchsatz überschreitest). Der Fehler trägt ThrottlingReason-Felder, die die gedrosselte Ressource und das erreichte Limit benennen.

Warum es passiert

  • Polling von Control-Plane-APIsDescribeTable, ListTables, UpdateTable in einer engen Schleife aufrufen (z. B. warten, bis eine Tabelle ACTIVE wird).
  • Viele Tabellen schnell erstellen/löschen — gleichzeitige Control-Plane-Operationen sind gedeckelt (nicht mehr als 500 Tabellen/Indizes gleichzeitig in CREATING/UPDATING/DELETING).
  • Ein konfigurierter maximaler On-Demand-Durchsatz — die Überschreitung von MaxReadRequestUnits/MaxWriteRequestUnits auf einer On-Demand-Tabelle oder einem GSI gibt ThrottlingException zurück.
  • Ein plötzlicher Ausschlag auf einer On-Demand-Tabelle — neue Tabellen starten bei 4.000 Writes/s und 12.000 Reads/s, und das Überschreiten des Doppelten deines vorherigen Spitzenwerts innerhalb von 30 Minuten kann drosseln, bis DynamoDB skaliert.

So behebst du es

  1. Wiederhole mit exponentiellem Backoff + Jitter — die AWS-SDKs machen das automatisch; lass Retries aktiviert und erwäge den Adaptive-Retry-Modus.
  2. Höre auf, Control-Plane-APIs eng zu pollen. Nutze Waiter (waitUntilTableExists), die nach einem sinnvollen Zeitplan pollen statt in einer heißen Schleife.
  3. Batche und takte Data-Plane-Writes. Fahre Bulk-Loads schrittweise hoch, damit die On-Demand-Kapazität mit dir skalieren kann.
  4. Verteile Tabellenoperationen über die Zeit, statt Dutzende auf einmal zu erstellen.
  5. Prüfe ThrottlingReason in der Antwort. Es benennt die gedrosselte Ressource und das Limit — Control-Plane- und On-Demand-Data-Plane-Drosselungen brauchen unterschiedliche Gegenmaßnahmen.

Beispiel

import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
import {waitUntilTableExists} from '@aws-sdk/client-dynamodb';

const client = new DynamoDBClient({});
//  a waiter polls on a backoff schedule — not a tight DescribeTable loop
await waitUntilTableExists({client, maxWaitTime: 120}, {TableName: 'Orders'});

FAQ

Ist ThrottlingException dasselbe wie ProvisionedThroughputExceededException? Nein. ProvisionedThroughputExceededException ist der Data-Plane-Fehler für das Überschreiten der provisionierten Kapazität einer Tabelle. ThrottlingException ist am häufigsten bei Control-Plane-Operationen (CreateTable, UpdateTable, DescribeTable), die niedrige kontoweite Limits haben, und bei sehr hochvolumigen Ausschlägen.

Wie behebe ich eine DynamoDB-ThrottlingException? Wiederhole mit exponentiellem Backoff und Jitter — die AWS-SDKs machen das automatisch. Höre auf, Control-Plane-APIs eng zu pollen (nutze Waiter wie waitUntilTableExists), fahre Bulk-Loads schrittweise hoch, damit die On-Demand-Kapazität mit dir skalieren kann, und verteile Tabellenoperationen über die Zeit.

Größe in DynoTable prüfen

Wenn Control-Plane-Drosselung das Aufsetzen von Tabellen blockiert, durchsuche vorhandene Tabellen mit DynoTable, statt DescribeTable in einer Schleife zu pollen — öffne Tabellen nach einem einzigen Refresh mit ⌘K. Für Bulk-Loads, die On-Demand-Drosselung auslösen, dimensioniere den Traffic vorab mit dem Pricing-Rechner.

Wechsle Profile mit ⌘P; Verbindung testen unter Einstellungen → Profile bestätigt das Konto. Siehe Mit AWS verbinden und Installation.

Quellen

Verwandte Fehler

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Mit DynamoDB ohne die Console arbeiten

Ein schneller DynamoDB-Desktop-Client, der das echte SQL ausführt, das DynamoDB nicht kann — JOINs, GROUP BY, Aggregationen — mit visueller Bearbeitung und einem KI-Agenten auf deinen eigenen Bedrock-Schlüsseln.

30 Tage kostenlos testen, keine Kreditkarte — danach der Kostenlos-Tarif ohne Zeitlimit.