Error: dynamodb connection timeout
Answered by Rafal Wilinski
What's Causing This Error
This error may occur due to two reasons:
- HTTP Timeouts: These can occur if the AWS SDK cannot establish or maintain HTTP connections with DynamoDB.
- Retries: Sometimes, your operations can time out if the DynamoDB retries take too long. The AWS SDK uses an exponential backoff algorithm to enforce retries, and the AWS SDK auto-retries requests up to 10 times with DynamoDB starting with 50ms for the last retry and 25600ms for the last retry. This means that DynamoDB will take approximately 50 seconds to retry in the worst-case scenario. However, your Lambda function invoked by an API Gateway would have already timed out, causing the request to timeout.
Solution: Here's How To Resolve It
Resolving this error is all about trial and error. For example, you can enforce an HTTP timeout period when initializing the SDK to ensure that your connections are forcefully timed-out after a defined period. The snipper for updating the timeout period is shown below:
import AWS from 'aws-sdk'; const dynamoDb = new AWS.DynamoDB.DocumentClient({ httpOptions: { timeout: 5000 } });
Secondly, consider reducing the retry count from 10 to around 5. By doing so, you can easily find why DynamoDB keeps timing out rather than forcefully retrying until the Lambda function turns out. The snippet for updating the retry count is shown below:
import AWS from 'aws-sdk'; const dynamoDb = new AWS.DynamoDB.DocumentClient({ maxRetries: 3 });
Afterwards, you could inspect CloudWatch logs to get detailed information on the DynamoDB error.
Other Common DynamoDB Errors (with Solutions)
- DynamoDB internal error
- DynamoDB type is not supported
- DynamoDB type item is not supported
- DynamoDB cannot delete the table
- DynamoDB local error unable to access JAR file dynamodblocal.jar
- DynamoDB scan limit not working
- DynamoDB sorting is not supported for scan expressions
- DynamoDB delete fails
- dynamodb value cannot be null. (parameter 'type')
- aws.dynamodb.converter.unmarshall not working
- DynamoDB ConditionExpression not working
- dynamodb converter not found for enhancedtype
- dynamodb throttle error code
- DynamoDB local is not available for stage test
- dynamodb unknown error
Better DynamoDB experience.
Start your 7-day free trial today
Product Features
DynamoDB Tools
DynamoDB Info
© 2024 Dynobase