dynobase-icon
Dynobase

Error: error dynamodb streams must be enabled on the table

Rafal Wilinski

Answered by Rafal Wilinski

Last updated: October 23rd, 2026

Solution

“DynamoDB Streams must be enabled on the table” means the integration needs a stream but the table has none enabled, or an imported resource lacks stream metadata. Enable the stream on the actual table and pass its current ARN to the consumer.

import boto3

db = boto3.client("dynamodb", region_name="us-west-2")
name = "Orders"
current = db.describe_table(TableName=name)["Table"]
if not current.get("StreamSpecification", {}).get("StreamEnabled", False):
    db.update_table(
        TableName=name,
        StreamSpecification={
            "StreamEnabled": True,
            "StreamViewType": "NEW_AND_OLD_IMAGES",
        },
    )
    db.get_waiter("table_exists").wait(TableName=name)
print(db.describe_table(TableName=name)["Table"].get("LatestStreamArn"))

Select the view type needed by the consumer. A Lambda event source mapping needs the stream ARN, not the table ARN, and its execution role needs stream-read permissions. In IaC, define the stream before referencing it; an imported table construct may need the stream ARN supplied explicitly.

Re-enabling a disabled stream creates a new ARN. Update consumers accordingly. A Kinesis Data Streams destination is a separate change-capture integration and is not created merely by enabling DynamoDB Streams.

See Lambda stream triggers and AWS documentation.

Dynobase is a Professional GUI Client for DynamoDB

Start your 7-day free trial today

Product Features

Download
/
Pricing
/
Member Portal
/
Privacy
/
EULA
/
Twitter
© 2026 Dynobase
+
Still using AWS DynamoDB Console?
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.