Error: an expression attribute name used in the document path is not defined

Answered by Rafal Wilinski
What's Causing This Error
This error occurs when you have used expression attribute names for the KeyConditionExpression
or FilterExpression
that are not defined in the ExpressionAttributeNames
parameter.
Solution - Here's How To Resolve It
To resolve the error, define all the expression attribute names you've specified for the document paths in the ExpressionAttributeNames
object.
This is shown below.
const doFunStuff = async () => { await documentClient.query({ TableName: 'test-table', KeyConditionExpression: '#id = :id', ProjectionExpression: '#name', // define all the expression attribute names used in the query ExpressionAttributeNames: { '#id': 'id', '#name': 'name' }, ExpressionAttributeValues: { ':id': '1' }, }).promise(); }; doFunStuff();
Other Common DynamoDB Errors (with Solutions)
- dynamodb unable to locate credentials
- dynamodb could not load credentials from any providers
- dynamodb stream missing fields
- DynamoDB service unavailable
- dynamodb index not updated
- dynamodb local unable to locate credentials
- a socket operation was attempted to an unreachable network dynamodb
- dynamodb trigger no records processed
- dynamodb user errors metric
- dynamodb scan missing values
- dynamodb unable to parse base64 string
- DynamoDB console unable to delete this item
- dynamodb condition does not exist
- dynamodb could not connect to the endpoint url
- DynamoDB Delete Not Working
Login to the AWS Console less. Use Dynobase.
Try 7-day free trial. No credit card needed.
Product Features
DynamoDB Tools
DynamoDB Info
© 2025 Dynobase