DynamoDB no puede acceder a la transmisión: la transmisión no está habilitada

TL;DR: un consumidor (una asignación de fuente de eventos Lambda, un lector de adaptador Kinesis o una llamada DescribeStream/GetShardIterator) intentó leer un stream de DynamoDB en una tabla donde Streams está desactivado, o usó un ARN de stream obsoleto de antes de que Streams se volviera a habilitar. Habilite DynamoDB Streams en la tabla y apunte el consumidor al LatestStreamArn actual de la tabla.

Qué significa

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 es una función opcional (opt-in). Una tabla solo tiene un stream cuando estableces un StreamSpecification con StreamEnabled: true. Si un lector — con mayor frecuencia un mapeo de origen de eventos de Lambda — está conectado a una tabla que no tiene stream activo (o a un ARN que ya no existe), el mapeo no puede adjuntarse e informa de que no puede acceder al stream.

Por qué ocurre

  • Streams nunca se habilitó en la tabla, pero un consumidor espera uno.
  • Streams se deshabilitó y se volvió a habilitar — cada habilitación acuña un ARN de stream completamente nuevo (con un sufijo de marca de tiempo nuevo). Un consumidor que sostiene el ARN antiguo está leyendo un stream deshabilitado que sigue siendo legible como máximo 24 horas más, luego sus registros expiran.
  • Desincronización de infraestructura como código — un consumidor de CDK/CloudFormation/Terraform referencia una tabla importada por nombre/ARN que no propagó su configuración de stream, así que la herramienta cree que Streams está apagado.
  • ARN de stream equivocado — usar el ARN de la tabla, o un marcador de posición .../stream/latest, en lugar del LatestStreamArn real.

Cómo solucionarlo

  1. Habilita Streams en la tabla. Establece StreamSpecification { StreamEnabled: true, StreamViewType: NEW_AND_OLD_IMAGES } (o el tipo de vista que necesite tu consumidor) mediante UpdateTable, la consola o tu IaC.
  2. Lee el ARN de stream actual. Llama a DescribeTable y usa el campo LatestStreamArn — nunca un ARN construido a mano o cacheado.
  3. Vuelve a apuntar el consumidor al nuevo ARN tras cualquier ciclo de deshabilitar/habilitar; recrea el mapeo de origen de eventos de Lambda si estaba vinculado al stream antiguo.
  4. Concede permiso de lectura — el rol del consumidor necesita dynamodb:DescribeStream, GetRecords, GetShardIterator y ListStreams sobre el ARN del stream.
  5. No confundas el ARN de tabla con el de stream — el ARN de stream termina en /stream/<marca de tiempo>, el ARN de tabla no.

¿Necesitas inspeccionar la tabla y su configuración de stream sin la consola? La aplicación de escritorio DynoTable muestra el estado del stream junto a la tabla para que confirmes que está activo antes de apuntar un lector hacia él.

Antes de reintentar en DynoTable

Antes de conectar un mapeo de origen de eventos de Lambda, abre la tabla en DynoTable y confirma que Streams está habilitado y qué StreamViewType está configurado (detalles de la tabla). DynoTable muestra la configuración del stream junto al esquema, así que no tienes que dar un rodeo por la consola de AWS.

Después de deshabilitar y volver a habilitar Streams, el ARN cambia — refresca la tabla en DynoTable y copia la identidad del stream actual desde AWS (LatestStreamArn vía CLI/DescribeTable) al consumidor. Usa ⌘P para permanecer en el perfil de cuenta/región correcto. La inspección diaria de Items se queda en DynoTable; los consumidores de stream se quedan en las herramientas de Lambda/Kinesis. El constructor de consultas ayuda a verificar que la tabla sigue sirviendo lecturas por clave tras una conmutación de Streams.

Fuentes

Errores relacionados

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.

Trabaja con DynamoDB sin la Consola

Un cliente de escritorio rápido para DynamoDB que ejecuta el SQL real que DynamoDB no puede — JOINs, GROUP BY, agregaciones — con edición visual y un agente de IA con tus propias claves de Bedrock.

Prueba gratuita de 30 días, sin tarjeta — después, el plan Free sin límite de tiempo.