DynamoDB ResourceNotFoundException
TL;DR — DynamoDB non riesce a trovare la tabella (o l'indice) che hai indicato nella regione/account a cui è indirizzato il tuo cliente. Verifica la presenza di un errore di battitura nel nome della tabella, della "regione" sbagliata o delle credenziali per un account diverso. Non capita quasi mai che la tabella sia davvero sparito.
Cosa significa
ResourceNotFoundException: Requested resource not found: Table: <table-name> not found
# on DynamoDB Local:
ResourceNotFoundException: Cannot do operations on a non-existent tableIl primo è ciò che restituisce il servizio live: nomina la tabella cercata. Il secondo è ciò che restituisce DynamoDB Local e vederlo è un segno affidabile che stai parlando con l'emulatore anziché con AWS. In ogni caso, l'operazione ha preso di mira una tabella o un indice che non esiste dal punto di vista di questo client: la combinazione di nome tabella + AWS regione + account (credenziali). Tutti e tre devono allinearsi. DynamoDB lo restituisce con lo stato HTTP 400 e non è possibile riprovare: la stessa richiesta continua a fallire finché non si correggono il nome, la regione o le credenziali (o la tabella non termina la creazione: anche una tabella troppo presto nello stato CREATING può restituire questo errore).
Perché succede
- Non corrispondenza della regione: la tabella è in "us-east-1" ma il client ha come impostazione predefinita "us-west-2" (o non è impostata alcuna regione, quindi l'SDK sceglie un valore predefinito diverso).
- Nome tabella errato: un errore di battitura, una distinzione tra maiuscole e minuscole errate (i nomi fanno distinzione tra maiuscole e minuscole sul servizio Web) o un nome con prefisso di ambiente (
prod-OrdersvsOrders). - Account sbagliato: le credenziali si risolvono in un account AWS diverso da quello proprietario della tabella.
- Interrogazione di un indice che non esiste o non è ancora
ACTIVE(un GSI sta ancora riempiendo) — il riferimento API richiama "una tabella o un indice inesistente" il cui "stato potrebbe non essereACTIVE". - La tabella è stata davvero cancellata, oppure sei stato indirizzato a DynamoDB Local, che inizia vuoto.
Come risolverlo
- Aggiungi esplicitamente la regione sul client e conferma che corrisponda a dove si trova la tabella.
- Verifica il nome esatto della tabella: elenca le tabelle in quella regione (
aws dynamodb list-tables --region <r>) e copia il nome alla lettera. - Confermare le credenziali risolvere l'account proprietario (
aws sts get-caller-identity). - Controlla il nome dell'indice + lo stato se la chiamata utilizza
IndexName(DescribeTable→ GSI deve essereACTIVE).
Esempio
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
Come posso correggere ResourceNotFoundException in DynamoDB? Controlla che il nome della tabella, la regione AWS e l'account (credenziali) siano tutti allineati: aggiungi esplicitamente la regione al client, elenca le tabelle in quella regione per verificare il nome esatto e conferma che le credenziali vengono risolte nell'account proprietario con "aws sts get-caller-identity".
ResourceNotFoundException significa che la mia tabella è stata eliminata? Raramente. Di solito significa che il cliente sta cercando nel posto sbagliato: una mancata corrispondenza della regione, un errore di battitura o un errore nel nome della tabella o le credenziali di un account diverso. Si attiva anche quando interroghi un indice che non esiste o non è ancora ATTIVO, o quando punti a DynamoDB Local, che inizia vuoto.
Workbench DynoTable
DynoTable elenca le tabelle per il profilo attivo e la regione nella barra laterale. Se a
manca una tabella, premere ⌘P per confermare il profilo e controllare il
regione nella scheda: una mancata corrispondenza qui è la causa più comune di questo errore in
l'app. ⌘K → Apri tabella per nome ti consente di digitare la tabella esatta
nome quando "ListTables" viene negato o l'elenco viene filtrato in base a un prefisso di tabella.
Contro DynamoDB Locale, aggiungi un profilo con endpoint http://localhost:8000 e
credenziali del segnaposto corrispondenti (Connetti a DynamoDB Locale)
— Locale inizia vuoto finché non crei le tabelle.
Errori correlati
- ResourceInUseException — il contrario: la tabella esiste già.
- Regione mancante nella configurazione
- Il token di sicurezza non è valido
- Impara: Running DynamoDB Local — Local inizia vuoto; sapere su quale endpoint ti trovi.
Fonti
- Gestione degli errori con DynamoDB — Guida per sviluppatori di Amazon DynamoDB (verificato il 13-07-2026)
- Query: riferimento Amazon DynamoDB API (verificato il 13-07-2026)
- DynamoDB note sull'utilizzo locale - Guida per sviluppatori Amazon DynamoDB (verificato il 13-07-2026)