DynamoDB ResourceNotFoundException
TL;DR — DynamoDB no encuentra la tabla (o el índice) que nombraste en la región/cuenta a la que apunta tu cliente. Comprueba si hay una errata en el nombre de la tabla, una region equivocada, o credenciales de una cuenta diferente. Casi nunca es que la tabla haya desaparecido de verdad.
Qué significa
ResourceNotFoundException: Requested resource not found: Table: <table-name> not found
# on DynamoDB Local:
ResourceNotFoundException: Cannot do operations on a non-existent tableEl primero es lo que devuelve el servicio real — nombra la tabla que buscó. El segundo es lo que devuelve DynamoDB Local, y verlo es una señal fiable de que estás hablando con el emulador y no con AWS. En cualquier caso, la operación apuntó a una tabla o índice que no existe desde la perspectiva de este cliente — la combinación de nombre de tabla + región de AWS + cuenta (credenciales). Las tres tienen que cuadrar. DynamoDB lo devuelve con estado HTTP 400 y no es reintentable — la misma petición sigue fallando hasta que arregles el nombre, la región o las credenciales (o la tabla termine de crearse: una tabla demasiado pronto en el estado CREATING también puede devolver este error).
Por qué ocurre
- Desajuste de región — la tabla está en
us-east-1pero el cliente usa por defectous-west-2(o no hay región configurada, así que el SDK elige un valor por defecto diferente). - Nombre de tabla equivocado — una errata, mayúsculas/minúsculas incorrectas (los nombres distinguen mayúsculas en el servicio web), o un nombre con prefijo de entorno (
prod-OrdersvsOrders). - Cuenta equivocada — las credenciales se resuelven a una cuenta de AWS diferente de la que posee la tabla.
- Consultar un índice que no existe o que aún no está
ACTIVE(un GSI sigue rellenándose) — la referencia de la API menciona "una tabla o índice inexistente" cuyo "estado podría no serACTIVE". - La tabla realmente fue eliminada, o estás apuntando a DynamoDB Local, que empieza vacío.
Cómo solucionarlo
- Fija la región explícitamente en el cliente y confirma que coincide con donde vive la tabla.
- Verifica el nombre exacto de la tabla — lista las tablas de esa región (
aws dynamodb list-tables --region <r>) y copia el nombre tal cual. - Confirma que las credenciales se resuelven a la cuenta propietaria (
aws sts get-caller-identity). - Comprueba el nombre y el estado del índice si la llamada usa
IndexName(DescribeTable→ el GSI debe estarACTIVE).
Ejemplo
import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
// Pin the region so the client can't silently target the wrong one:
const client = new DynamoDBClient({region: 'us-east-1'});FAQ
¿Cómo soluciono ResourceNotFoundException en DynamoDB?
Comprueba que el nombre de la tabla, la región de AWS y la cuenta (credenciales) cuadren todos: fija la región explícitamente en el cliente, lista las tablas de esa región para verificar el nombre exacto, y confirma que las credenciales se resuelven a la cuenta propietaria con aws sts get-caller-identity.
¿ResourceNotFoundException significa que mi tabla fue eliminada? Rara vez. Normalmente significa que el cliente está buscando en el lugar equivocado — un desajuste de región, una errata o mayúsculas incorrectas en el nombre de la tabla, o credenciales de una cuenta diferente. También se dispara cuando consultas un índice que no existe o aún no está ACTIVE, o cuando apuntas a DynamoDB Local, que empieza vacío.
Workbench de DynoTable
DynoTable lista las tablas del perfil y la región activos en la barra lateral. Si
falta una tabla, pulsa ⌘P para confirmar el perfil y comprueba la
región en la pestaña — un desajuste aquí es la causa más común de este error en
la aplicación. ⌘K → Abrir tabla por nombre te deja escribir el nombre
exacto de la tabla cuando ListTables está denegado o la lista se filtra por un prefijo.
Contra DynamoDB Local, añade un perfil con endpoint http://localhost:8000 y
credenciales de marcador de posición (Conectar a DynamoDB Local)
— Local empieza vacío hasta que creas tablas.
Errores relacionados
- ResourceInUseException — lo contrario: la tabla ya existe.
- Falta la región en la configuración
- El token de seguridad no es válido
- Aprende: Running DynamoDB Local — Local empieza vacío; ten claro en qué endpoint estás.
Fuentes
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide (verificado 2026-07-13)
- Query — Amazon DynamoDB API Reference (verificado 2026-07-13)
- DynamoDB local usage notes — Amazon DynamoDB Developer Guide (verificado 2026-07-13)