Common DynamoDB Errors
(and Solutions)
Diagnose a DynamoDB failure by its exception name, message and request ID, not just its HTTP status. Some HTTP 400 errors, including throttling, are retryable; validation and permission errors usually require a change. Find the matching error below, then use the retry guidance after the list.
- Unable to start DynamoDB Local process
- ConfigError: Missing region in config
- DynamoDB Key element does not match the schema
- DynamoDB ConditionalCheckFailedException
- DynamoDB ValidationException: Query condition missed key schema element
- DynamoDB Invalid UpdateExpression Syntax Error Token
- sls dynamodb install not working
- DynamoDB Internal Server Error
- AWS DynamoDB errors ResourceNotFoundException
- ImportError: No module named boto3 (DynamoDB)
- AWS DynamoDB CredentialsError: Missing credentials in config
- DynamoDB Network Error: self signed certificate in chain
- ValidationException: Invalid KeyConditionExpression: Attribute name is a reserved keyword;
- ExpressionAttributeValues contains invalid value: One or more parameter values were invalid: An AttributeValue may not contain an empty string
- Error ValidationException: One or more parameter values were invalid: Type mismatch for key X expected: S actual: M
- One or more parameter values were invalid: some AttributeDefinitions are not used
- dynamodb getItem() is not a function
- missing required key 'key' in params dynamodb
- failed to begin subsegment named 'amazondynamodbv2': segment cannot be found.
- dynamodb: one or more parameter values were invalid: type mismatch for index key
- an expression attribute name used in the document path is not defined
- com amazonaws services dynamodbv2 model resourcenotfoundexception
- accessdeniedexception dynamodb
- aws.dynamodb.converter.unmarshall not working
- dynamodb atomic counter not working
- dynamodb put function not working
- 'dynamodb' object has no attribute 'table'
- why is the GSI dynamodb not showing item count
- dynamodb query not returning the full item
- is not authorized to perform dynamodb:* on resource
- Float types are not supported. Use decimal types instead.
- aws.dynamodb.documentclient is not a constructor
- dynamodb put item not working
- requested resource not found aws dynamodb
- dynamodb ttl not deleting / erasing items
- could not unconvert attribute dynamodb
- dynamodb query key condition not supported
- dynamodb connection timeout
- ProvisionedThroughputExceededException DynamoDB
- dynamodb list_append if_not_exists not working
- dynamodb list_append returns true but does not work
- could not connect to the endpoint URL dynamodb
- could not unmarshal the value dynamodb
- dynamodb does not accept empty set
- dynamodb mapper save not persisting
- dynamodb-admin command not found
- failed to list tables not authorized dynamodb
- name key is not defined dynamodb
- Boto3 DynamoDB KeyError
- DynamoDB Update Not Working
- DynamoDB Scan Not Working
- DynamoDB Delete Not Working
- DynamoDB FilterExpression Not Working
- DynamoDB Query Limit Not Working
- DynamoDB TTL Not Working
- KMS Key Access Denied Error DynamoDB
- DynamoDB Errors InvalidSignatureException Signature Expired
- AWS Lambda DynamoDB Stream Error
- Conditional Update Error DynamoDB
- CORS Error DynamoDB
- AWS CLI DynamoDB Error Parsing Parameter
- DynamoDB - The Security Token Included In The Request Is Invalid
- boto3 dynamodb unable to locate credentials
- could not lookup table in dynamodb
- dynamodb 1 validation error detected value
- dynamodb botocore.exceptions.nocredentialserror unable to locate credentials
- dynamodb cannot assign requested address
- dynamodb cannot convert undefined to object
- dynamodb cannot create preexisting table
- dynamodb cannot read properties of undefined
- dynamodb cannot read property '0' of undefined
- dynamodb cannot read property 'push' of undefined
- dynamodb cannot read property 's' of undefined
- dynamodb converter not found for enhancedtype
- dynamodb could not instantiate class
- dynamodb docker unable to open database file
- dynamodb does not support null values
- DynamoDB Duplicate Key Error
- DynamoDB Error 413
- DynamoDB Error All Attributes Must Be Indexed
- DynamoDB Expression Not Null
- DynamoDB Failed To Compute Node presentation
- DynamoDB failedbatch retry
- DynamoDB Not Supported Requires @DynamoDBTyped Or @DynamoDBTypeConverted
- DynamoDB Is Not Null
- DynamoDB Is Unsupported It Cannot Be Instantiated
- DynamoDB Item Does Not Exist
- DynamoDB Local Cannot Create Preexisting Table
- DynamoDB Local Docker Not Working
- DynamoDB Local NoClassDefFoundError
- DynamoDB Mapper Could Not Instantiate Class
- DynamoDB No Provisioned Throughput specified for the table
- DynamoDB No Regionendpoint Or Serviceurl Configured
- dynamodb the table does not have the specified index
- dynamodb condition does not exist
- dynamodb the parameter cannot be converted to a numeric value
- dynamodb index does not exist
- dynamodb no range key value present
- dynamodb consistent reads are not supported on global secondary indexes
- dynamodb the parameter cannot be converted to a numeric value NaN
- dynamodb exclusivestartkey not working
- dynamodb index not found
- dynamodb could not connect to the endpoint url
- dynamodb stream missing fields
- dynamodb item size limit error
- dynamodb attribute does not exist
- dynamodb local could not load credentials from any providers
- dynamodb table not exists
- dynamodb problem function call failed
- dynamodb property projection cannot be empty
- dynamodb query is not null
- dynamodb query is null
- dynamodb request is missing authentication token
- dynamodb system errors metric
- dynamodb table did not stabilize
- dynamodb unable to execute http request
- dynamodb unable to locate credentials
- dynamodb unable to parse base64 string
- dynamodb validation error detected
- dynamodb is abstract cannot be instantiated
- error dynamodb streams must be enabled on the table
- error retrieving dynamodb table item serializationexception
- moto dynamodb not working
- dynamodb local unable to open database file
- dynamodb number_value cannot be converted to string
- dynamodb could not load credentials from any providers
- localstack dynamodb not working
- dynamodb global secondary index does not project
- dynamodb scan missing values
- dynamodb update fail if not exists
- dynamodb global secondary index not working
- error updating dynamodb table time to live
- dynamodb-admin is not recognized as an internal or external command
- a bytes-like object is required not binary dynamodb
- a socket operation was attempted to an unreachable network dynamodb
- can't pickle thread.lock objects typeerror boto3 python dynamodb
- dynamodb localhost not working
- dynamodb-admin not working
- dynamodb unknown error
- dynamodb throughput error
- dynamodb unable to locate property for key attribute
- dynamodb streams missing events
- dynamodb value cannot be null. (parameter 'type')
- DynamoDB is missing the key id in the item
- Dynamodb error 500
- DynamoDB string set cannot be empty
- Error retrieving DynamoDB table item validation exception
- Could not connect to the endpoint URL https:dynamodb.singapore.amazonaws.com
- DynamoDB GetItem no item
- DynamoDB table not updating
- DynamoDB batch write is not working
- DynamoDB throttling error
- DynamoDB BatchSave not working
- DynamoDB error 400
- DynamoDB scan does not return all items
- DynamoDB stream lambda error
- DynamoDB string set may not be empty
- DynamoDB type is not supported
- DynamoDB local error unable to access JAR file dynamodblocal.jar
- DynamoDB local error spawn java ENOENT
- DynamoDB attribute not empty
- DynamoDB could not invoke null on class
- DynamoDB ConditionExpression not working
- DynamoDB aliasing is not supported
- DynamoDB consistent read not working
- DynamoDB console unable to delete this item
- DynamoDB Contains not working
- DynamoDB validation error
- DynamoDB stream not working
- DynamoDB missing items
- DynamoDB Get not found
- DynamoDB is not showing all columns
- DynamoDB no attribute schema defined
- DynamoDB parameter validation failed
- DynamoDB sorting is not supported for scan expressions
- DynamoDB query is slow
- DynamoDB BatchWriteItem error
- DynamoDB stream no records processed
- DynamoDB scan filter not working
- DynamoDB delete fails
- DynamoDB cannot do operations on a non-existent table
- DynamoDB scan filter expression not working
DynamoDB error codes and what they mean
The exception name tells you more than the HTTP status. DynamoDB uses HTTP 400 for both invalid requests and transient conditions such as throttling. HTTP 500 and 503 indicate service-side failures.
HTTP 5xx: service errors and uncertain writes
InternalServerError and ServiceUnavailable are generally retryable with backoff. A failed write response does not prove that the write failed: the service may have applied it before the response was lost. Reconcile the item's state or use an idempotent operation before retrying a counter increment or another write that could be applied twice.
HTTP 400: inspect the exception before retrying
- AccessDeniedException: check the caller's IAM permissions, resource and endpoint policies, and request signing. Retrying an unchanged denied request will not grant access.
- IncompleteSignatureException: the request signature is missing required components. Use the SDK's signing support and check credentials.
- ResourceNotFoundException: check the table or index name, account, Region and endpoint. After creation, wait for the resource to become available before issuing data requests.
- ValidationException: fix the parameters, expression syntax, key types or unsupported option identified in the message.
- ConditionalCheckFailedException: a condition evaluated to false. Handle it as an application outcome, such as a version conflict or an item that already exists, rather than blindly retrying.
- LimitExceededException: too many concurrent control-plane operations or another operation-specific limit. Wait for ongoing operations to finish and retry with backoff; inspect the message for the limit that applies.
- ProvisionedThroughputExceededException, ThrottlingException and RequestLimitExceeded: a table, index, partition or configured quota cannot serve the request rate. Retry with backoff and diagnose the throttling reason below.
- TransactionCanceledException: the transaction was canceled. Inspect cancellation reasons in request order. Conflicts or throttling may be transient; failed conditions and invalid parameters require application handling. See transaction examples.
- TransactionConflictException or ReplicatedWriteConflictException: another write conflicts with this operation. Retry with backoff, while preserving any application conditions that protect correctness.
Read ThrottlingReasons to find the bottleneck
Current SDKs expose ThrottlingReasons, containing a reason and the affected resource ARN. The reason combines Table or Index, Read or Write, and one of these limit types:
ProvisionedThroughputExceeded: configured provisioned capacity.AccountLimitExceeded: the on-demand table or index throughput service quota.KeyRangeThroughputExceeded: partition-level throughput, often a hot key.MaxOnDemandThroughputExceeded: the maximum throughput you configured.
For example, IndexWriteProvisionedThroughputExceeded points to a GSI write-capacity bottleneck that can throttle writes to its base table. Match the ARN to CloudWatch metrics before changing capacity. The throttling guide covers remediation; AWS documents the fields in the ThrottlingReason reference.
Handle retries and partial failures
AWS SDKs retry eligible transient failures with backoff, subject to their configured retry mode, attempt limit and retry budget. Catch errors after those attempts finish. Set a timeout appropriate for your application, log the exception name and request ID, and avoid stacking an unbounded retry loop around the SDK.
- Fix validation and authorization failures before retrying. Treat a failed condition as a business decision or concurrency conflict.
- For throttling, inspect
ThrottlingReasonsand the resource ARN. Sustained hot-key traffic, insufficient capacity or a configured on-demand cap needs remediation beyond retries. - Check successful batch responses too.
BatchWriteItemcan returnUnprocessedItemsandBatchGetItemcan returnUnprocessedKeyswith HTTP 200. Retry only that subset with exponential backoff and jitter, within a bounded deadline. - Make retries safe. A repeated atomic increment can increment twice. Use conditional writes where appropriate, or reuse the same
ClientRequestTokenfor an identical TransactWriteItems request within its idempotency window.
JavaScript SDK v3 supports client options such as maxAttempts; other SDKs have their own configuration APIs. Consult the AWS SDK retry settings and DynamoDB error-handling reference for the behavior of your SDK. The batch operations guide includes partial-failure handling.
Dynobase is a Professional GUI Client for DynamoDB
Start your 7-day free trial today