DynamoDB ResourceNotFoundException
TL;DR — DynamoDB can't find the table (or index) you named in the region/account your client is pointed at. Check for a typo in the table name, the wrong region, or credentials for a different account. It's almost never that the table is really gone.
What it means
ResourceNotFoundException: Requested resource not found: Table: <table-name> not found
# on DynamoDB Local:
ResourceNotFoundException: Cannot do operations on a non-existent tableThe first is what the live service returns — it names the table it looked for. The second is what DynamoDB Local returns, and seeing it is a reliable sign you are talking to the emulator rather than AWS. Either way, the operation targeted a table or index that doesn't exist from the perspective of this client — the combination of table name + AWS region + account (credentials). All three have to line up. DynamoDB returns it with HTTP status 400 and it's not retryable — the same request keeps failing until you fix the name, region, or credentials (or the table finishes creating: a table too early in the CREATING state can also return this error).
Why it happens
- Region mismatch — the table is in
us-east-1but the client defaults tous-west-2(or no region is set, so the SDK picks a different default). - Wrong table name — a typo, wrong case (names are case-sensitive on the web service), or an environment-prefixed name (
prod-OrdersvsOrders). - Wrong account — the credentials resolve to a different AWS account than the one that owns the table.
- Querying an index that doesn't exist or isn't
ACTIVEyet (a GSI is still backfilling) — the API reference calls out "a nonexistent table or index" whose "status might not beACTIVE". - The table really was deleted, or you're pointed at DynamoDB Local, which starts empty.
How to fix it
- Pin the region explicitly on the client and confirm it matches where the table lives.
- Verify the exact table name — list tables in that region (
aws dynamodb list-tables --region <r>) and copy the name verbatim. - Confirm the credentials resolve to the owning account (
aws sts get-caller-identity). - Check the index name + status if the call uses
IndexName(DescribeTable→ the GSI must beACTIVE).
Example
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
How do I fix ResourceNotFoundException in DynamoDB?
Check that the table name, AWS region, and account (credentials) all line up: pin the region explicitly on the client, list tables in that region to verify the exact name, and confirm the credentials resolve to the owning account with aws sts get-caller-identity.
Does ResourceNotFoundException mean my table was deleted? Rarely. It usually means the client is looking in the wrong place — a region mismatch, a typo or wrong case in the table name, or credentials for a different account. It also fires when you query an index that doesn't exist or isn't ACTIVE yet, or when you point at DynamoDB Local, which starts empty.
DynoTable workbench
DynoTable lists tables for the active profile and region in the sidebar. If a
table is missing, press ⌘P to confirm the profile and check the
region on the tab — a mismatch here is the most common cause of this error in
the app. ⌘K → Open table by name lets you type the exact table
name when ListTables is denied or the list is filtered by a table prefix.
Against DynamoDB Local, add a profile with endpoint http://localhost:8000 and
matching placeholder credentials (Connect to DynamoDB Local)
— Local starts empty until you create tables.
Related errors
- ResourceInUseException — the opposite: the table already exists.
- Missing region in config
- The security token is invalid
- Learn: Running DynamoDB Local — Local starts empty; know which endpoint you're on.
Sources
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide (verified 2026-07-13)
- Query — Amazon DynamoDB API Reference (verified 2026-07-13)
- DynamoDB local usage notes — Amazon DynamoDB Developer Guide (verified 2026-07-13)