DynamoDB cannot access stream — stream is not enabled
TL;DR — Ein Consumer (ein Lambda Event Source Mapping, ein Kinesis-Adapter-Reader oder ein direkter DescribeStream-/GetShardIterator-Aufruf) hat versucht, einen DynamoDB-Stream auf einer Tabelle zu lesen, auf der Streams ausgeschaltet sind, oder er hat einen veralteten Stream-ARN von vor der Reaktivierung benutzt. Aktivier DynamoDB Streams auf der Tabelle und richte den Consumer auf den aktuellen LatestStreamArn der Tabelle.
Was es bedeutet
Cannot access stream arn:aws:dynamodb:us-east-1:111122223333:table/Orders/stream/... .
Please ensure the ARN is correct and the stream is enabled.
DynamoDB Streams must be enabled on the table.DynamoDB Streams ist ein Opt-in-Feature. Eine Tabelle hat nur dann einen Stream, wenn du eine StreamSpecification mit StreamEnabled: true setzt. Wenn ein Reader — meist ein Lambda-Event-Source-Mapping — mit einer Tabelle verdrahtet ist, die keinen aktiven Stream hat (oder mit einer ARN, die nicht mehr existiert), kann das Mapping sich nicht anhängen und meldet, dass es nicht auf den Stream zugreifen kann.
Warum es passiert
- Streams wurden nie aktiviert auf der Tabelle, aber ein Consumer erwartet einen.
- Streams wurden deaktiviert und wieder aktiviert — jede Aktivierung stellt eine brandneue Stream-ARN aus (mit einem frischen Zeitstempel-Suffix). Ein Consumer, der die alte ARN hält, liest einen deaktivierten Stream, der höchstens noch 24 Stunden lesbar bleibt, dann laufen seine Datensätze ab.
- Infrastructure-as-Code-Drift — ein CDK-/CloudFormation-/Terraform-Consumer verweist auf eine per Name/ARN importierte Tabelle, deren Stream-Konfiguration nicht propagiert wurde, sodass das Tooling denkt, Streams seien aus.
- Falsche Stream-ARN — Verwendung der Tabellen-ARN oder eines
.../stream/latest-Platzhalters statt der echtenLatestStreamArn.
So behebst du es
- Aktiviere Streams auf der Tabelle. Setze
StreamSpecification{ StreamEnabled: true, StreamViewType: NEW_AND_OLD_IMAGES }(oder welchen View-Typ dein Consumer braucht) viaUpdateTable, die Konsole oder dein IaC. - Lies die aktuelle Stream-ARN. Rufe
DescribeTableauf und verwende das FeldLatestStreamArn— nie eine von Hand gebaute oder gecachte ARN. - Richte den Consumer neu aus auf die neue ARN nach jedem Deaktivierungs-/Aktivierungszyklus; erstelle das Lambda-Event-Source-Mapping neu, falls es an den alten Stream gebunden war.
- Erteile Leseberechtigung — die Rolle des Consumers braucht
dynamodb:DescribeStream,GetRecords,GetShardIteratorundListStreamsauf der Stream-ARN. - Verwechsle Tabellen- vs. Stream-ARN nicht — die Stream-ARN endet auf
/stream/<timestamp>, die Tabellen-ARN nicht.
Musst du die Tabelle und ihre Stream-Konfiguration ohne die Konsole inspizieren? Die DynoTable-Desktop-App zeigt den Stream-Status neben der Tabelle, sodass du bestätigen kannst, dass er an ist, bevor du einen Reader darauf richtest.
Vor dem Retry in DynoTable
Bevor du attach a Lambda event source mapping, open the table in DynoTable and confirm Streams is enabled and which StreamViewType is set (table details). DynoTable shows stream configuration beside the schema so you do not have to bounce through the AWS console.
Nachdem you disable and re-enable Streams, the ARN changes — refresh the table in DynoTable and copy the current stream identity from AWS (LatestStreamArn via CLI/DescribeTable) into the consumer. Use ⌘P to stay on the correct account/region profile. Day-to-day item inspection stays in DynoTable; stream consumers stay in Lambda/Kinesis tooling. The Query Builder helps verify the table still serves keyed reads nachdem a Streams toggle.
Quellen
- Change data capture for DynamoDB Streams (verifiziert 2026-07-13)
- Process Amazon DynamoDB records with Lambda (verifiziert 2026-07-13)
Verwandte Fehler
- ResourceNotFoundException — die Tabellen- oder Stream-ARN existiert überhaupt nicht.
- The ARN provided is invalid — eine fehlerhafte Stream-ARN.
- Learn: DynamoDB Streams
Referenzen
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
- Process Amazon DynamoDB records with Lambda — AWS Lambda Developer Guide
- StreamSpecification — Amazon DynamoDB API Reference
- DescribeTable — Amazon DynamoDB API Reference
Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.