DynamoDB errors fall into two categories: user errors and system errors.


USER ERRORS


User errors are basically any DynamoDB request that returns an HTTP 400 status code. They are client side issues commonly caused by:

  • Invalid query parameters
  • Table or index does not exist
  • Access denied

While the “ProvisionedThroughputExceededException” and “ConditionalCheckFailedException” errors return a 400 status code, they are not considered user errors because they are measured separately in Cloudwatch.

If user errors have only recently started happening, check to see if any code was released that might have broken your queries.

To address an increase in user errors, ensure that:

  • You have access to the table or index that you are writing to or querying
  • The table or index exists, and is spelled correctly in your requests
  • You have a properly formatted query
  • If your query has reserved words, use the expression attribute name parameter in the query to avoid an error 

 

SYSTEM ERRORS


System errors indicate that an HTTP 500 status code was returned from DynamoDB. Either DynamoDB is not available, or could not process that particular request. Ensure your code uses a retry mechanism with exponential backoff to retry any requests resulting in a system error. Check the AWS status page to see if DynamoDB is experiencing an outage, and open a support ticket if your customers are affected.


RESOURCES


 Note: Our system uses DynamoDB metrics in Amazon CloudWatch to detect possible issues with DynamoDB. Due to the API limitations of CloudWatch, there can be a delay of as many as 20 minutes before our system can detect these issues.