Tier 1
91.4%
Tier 2
76.0%
Tier 3
71.3%
Fully supports
Operation areas this target implements completely - every test passes, nothing skipped. Areas it only partly implements, or gets wrong, are in “Where it falls short” below.
- deleteItem tier 1
- deleteTable tier 1
- describeTable tier 1
- listTables tier 1
- updateTable tier 1
- kinesis tier 2
- streams tier 2
- tags tier 2
- ttl tier 2
- legacy-api tier 3
Conformance over time
Where it falls short
Operation groups with gaps in the latest run, biggest first. Unsupported means the target doesn't implement that feature at all, often by design. Open one for the exact tests, or see the conformance suite.
-
error-messages Tier 3 76 failing
View these tests in the suite →- BatchGetItem - exact error messages AttributesToGet with ProjectionExpression in a KeysAndAttributes block: full conflict error
- BatchGetItem - exact error messages empty-binary lookup key: full empty-value message
- BatchGetItem - exact error messages mixing ProjectionExpression on one table and AttributesToGet on another is rejected
- BatchGetItem - ProjectionExpression rejection messages duplicate paths (a, a) reject even when the key matches no item
- BatchGetItem - ProjectionExpression rejection messages two distinct aliases resolving to one attribute (#a, #b -> a): rejected on the resolved names
- BatchGetItem - ProjectionExpression rejection messages overlapping parent and child paths (a, a.b): full overlap message
- BatchGetItem - ProjectionExpression rejection messages a bad projection on one table entry rejects the whole batch despite a clean entry on another
- BatchWriteItem - exact error messages wrong-typed table key: full schema-mismatch message
- BatchWriteItem - exact error messages non-scalar table key: full schema-mismatch message
- BatchWriteItem - exact error messages empty-string table key: full empty-value message
- BatchWriteItem - exact error messages empty-binary put-request key: full empty-value message
- BatchWriteItem - exact error messages empty-binary delete-request key: full empty-value message
- BatchWriteItem - exact error messages wrong-typed index key: full type-mismatch message
- BatchWriteItem - exact error messages non-scalar index key: full type-mismatch message
- BatchWriteItem - exact error messages empty-string index key: full secondary-index-key message
- BatchWriteItem - exact error messages empty-binary index key: full secondary-index-key message
- CreateTable - exact error messages PAY_PER_REQUEST with ProvisionedThroughput: full conflict message
- CreateTable - exact error messages GSI INCLUDE projection without NonKeyAttributes: full missing-attributes message
- CreateTable - exact error messages LSI INCLUDE projection without NonKeyAttributes: full missing-attributes message
- CreateTable - exact error messages StreamSpecification StreamEnabled:false with a StreamViewType: full conflict message
- DeleteItem - exact error messages mixing Expected with ConditionExpression: full conflict error
- DeleteItem - exact error messages empty-binary key value: full ValidationException message
- GetItem - exact error messages empty-binary key value: full ValidationException message
- GetItem - ProjectionExpression rejection messages raw duplicate paths (a, a): full overlap message with the path on both sides
- GetItem - ProjectionExpression rejection messages same alias twice (#a, #a): full overlap message
- GetItem - ProjectionExpression rejection messages two distinct aliases resolving to one attribute (#a, #b -> a): rejected on the resolved names
- GetItem - ProjectionExpression rejection messages raw path plus alias for the same attribute (a, #a): full overlap message
- GetItem - ProjectionExpression rejection messages raw parent and child paths (a, a.b): full overlap message
- GetItem - ProjectionExpression rejection messages aliased parent and child paths (#a, #a.#b): full overlap message
- GetItem - ProjectionExpression rejection messages child before parent (a.b, a): rejected with the paths in request order
- GetItem - ProjectionExpression rejection messages cross-alias overlap (#x, #y.#b with #x and #y -> a): rejected on the resolved paths
- GetItem - ProjectionExpression rejection messages deep overlap (a, a.b.c): full overlap message with the three-element path
- GetItem - ProjectionExpression rejection messages list parent and list index (l, l[0]): rejected as an overlap
- GetItem - ProjectionExpression rejection messages undefined attribute name (#undef): full undefined-name message
- PutItem - exact error messages duplicate zero-length members in BS: full duplicates error
- PutItem - exact error messages NULL attr with false is accepted and normalises to NULL true
- PutItem - exact error messages empty-binary item key value: full ValidationException message
- PutItem - exact error messages empty-binary index key value: full secondary-index-key message
- Query - exact error messages Select SPECIFIC_ATTRIBUTES without ProjectionExpression: full required-projection message
- Query - ProjectionExpression rejection messages duplicate paths (a, a) reject even when the key condition matches no partition
- Query - ProjectionExpression rejection messages two distinct aliases resolving to one attribute (#a, #b -> a): rejected on the resolved names
- Query - ProjectionExpression rejection messages overlapping parent and child paths (a, a.b) reject even when the key condition matches no partition
- Query - ProjectionExpression rejection messages duplicate paths still reject when the key condition matches a partition (control)
- Scan - exact error messages ConsistentRead on a GSI: full consistent-reads-unsupported message
- Scan - exact error messages Select SPECIFIC_ATTRIBUTES without ProjectionExpression: full required-projection message
- Scan - ProjectionExpression rejection messages duplicate paths (a, a) reject even when the filter matches nothing
- Scan - ProjectionExpression rejection messages two distinct aliases resolving to one attribute (#a, #b -> a): rejected on the resolved names
- Scan - ProjectionExpression rejection messages overlapping parent and child paths (a, a.b) reject even when the filter matches nothing
- Scan - ProjectionExpression rejection messages rejects an undefined projection name even when the scan matches nothing
- Scan - ProjectionExpression rejection messages duplicate paths still reject when the filter matches a row (control)
- TransactWriteItems - exact error messages Put wrong-typed table key: cancelled with full ValidationError reason
- TransactWriteItems - exact error messages Put non-scalar table key: cancelled with full ValidationError reason
- TransactWriteItems - exact error messages Put wrong-typed index key: cancelled with full ValidationError reason
- TransactWriteItems - exact error messages Put non-scalar index key: cancelled with full ValidationError reason
- TransactWriteItems - exact error messages Update wrong-typed index key: cancelled with full ValidationError reason
- TransactWriteItems - exact error messages Update non-scalar index key: cancelled with full ValidationError reason
- TransactWriteItems - exact error messages Put empty-string table key: top-level ValidationException
- TransactWriteItems - exact error messages Put empty-string index key: top-level ValidationException
- TransactWriteItems - exact error messages Update empty-string index key: top-level ValidationException
- TransactWriteItems - exact error messages Update empty-string Key: top-level empty-value message
- TransactWriteItems - exact error messages Delete empty-string Key: top-level empty-value message
- TransactWriteItems - exact error messages ConditionCheck empty-string Key: top-level empty-value message
- TransactWriteItems - exact error messages Update wrong-typed Key: cancelled with schema-mismatch reason
- TransactWriteItems - exact error messages Update non-scalar Key: cancelled with schema-mismatch reason
- TransactWriteItems - exact error messages Delete wrong-typed Key: cancelled with schema-mismatch reason
- TransactWriteItems - exact error messages Delete non-scalar Key: cancelled with schema-mismatch reason
- TransactWriteItems - exact error messages ConditionCheck wrong-typed Key: cancelled with schema-mismatch reason
- TransactWriteItems - exact error messages ConditionCheck non-scalar Key: cancelled with schema-mismatch reason
- TransactWriteItems - exact error messages Put empty-binary item key: top-level empty-value message
- TransactWriteItems - exact error messages Update empty-binary Key: top-level empty-value message
- TransactWriteItems - exact error messages Delete empty-binary Key: top-level empty-value message
- TransactWriteItems - exact error messages ConditionCheck empty-binary Key: top-level empty-value message
- TransactWriteItems - exact error messages Put empty-binary index key: top-level ValidationException
- TransactWriteItems - exact error messages Update empty-binary index key: top-level ValidationException
- UpdateItem - exact error messages empty-binary key value: full ValidationException message
- UpdateItem - exact error messages empty-binary index key value: full secondary-index-key message
-
transactions Tier 2 21 failing
View these tests in the suite →- TransactGetItems - ConsumedCapacity charges 2 read capacity units per item, including a missing item
- TransactGetItems - ConsumedCapacity INDEXES breakdown includes the table read capacity units
- TransactGetItems - projection matching nothing omits Item when the projection matches no attribute on a present item
- TransactWriteItems - validation Put with a wrong-typed table key cancels with a ValidationError reason
- TransactWriteItems - validation Put with a non-scalar table key cancels with a ValidationError reason
- TransactWriteItems - validation Put with a wrong-typed index key cancels with a ValidationError reason
- TransactWriteItems - validation Put with a non-scalar index key cancels with a ValidationError reason
- TransactWriteItems - validation Update setting a wrong-typed index key cancels with a ValidationError reason
- TransactWriteItems - validation Update setting a non-scalar index key cancels with a ValidationError reason
- TransactWriteItems - validation Put with an empty-string index key is a top-level ValidationException
- TransactWriteItems - validation Update setting an empty-string index key is a top-level ValidationException
- TransactWriteItems - validation Update with a wrong-typed Key cancels with a ValidationError reason
- TransactWriteItems - validation Update with a non-scalar Key cancels with a ValidationError reason
- TransactWriteItems - validation Delete with a wrong-typed Key cancels with a ValidationError reason
- TransactWriteItems - validation Delete with a non-scalar Key cancels with a ValidationError reason
- TransactWriteItems - validation ConditionCheck with a wrong-typed Key cancels with a ValidationError reason
- TransactWriteItems - validation ConditionCheck with a non-scalar Key cancels with a ValidationError reason
- TransactWriteItems - ConsumedCapacity charges 2 write capacity units per item
- TransactWriteItems - ConsumedCapacity: conditional, check, replay, cancel a passing conditional write costs the same 2 WCU/item as an unconditional one
- TransactWriteItems - ConsumedCapacity: conditional, check, replay, cancel a standalone ConditionCheck action costs 2 write capacity units
- TransactWriteItems - ConsumedCapacity: conditional, check, replay, cancel reports write capacity on the first call and read capacity on a same-token replay
-
limits Tier 3 11 failing
View these tests in the suite →- Expression size limit (4KB) - UpdateExpression rejects an UpdateExpression over the 4096-byte limit
- Expression size limit (4KB) - ConditionExpression rejects a ConditionExpression over the 4096-byte limit
- Expression size limit (4KB) - Query FilterExpression rejects a Query FilterExpression over the 4096-byte limit
- Expression size limit (4KB) - Scan FilterExpression rejects a Scan FilterExpression over the 4096-byte limit
- Expression size limit (4KB) - ProjectionExpression rejects a ProjectionExpression over the 4096-byte limit
- Item size limit - number sizing a number-dominated item under 400KB succeeds (15000 numbers)
- Key-value length limits rejects a partition key over the 2048-byte limit on write
- Key-value length limits rejects an over-limit partition key on the read path
- Nesting depth - 32-level document limit rejects a stored attribute nested 32 levels (leaf at level 33)
- Nesting depth - 32-level document limit rejects a 32-level ExpressionAttributeValue with ValidationException
- Number precision - DynamoDB number limits and edge cases rejects arithmetic that overflows the supported number magnitude
-
partiql Tier 2 10 failing
View these tests in the suite →- BatchExecuteStatement - PartiQL partial failure - one valid and one invalid statement
- ExecuteStatement - PartiQL SELECT with nested map path
- ExecuteStatement - PartiQL returns a populated ConsumedCapacity block when requested
- ExecuteStatement - PartiQL evaluates negated predicates (NOT begins_with, IS NOT MISSING)
- ExecuteStatement - PartiQL DELETE with a false non-key predicate fails ConditionalCheckFailed and leaves the item
- ExecuteStatement - PartiQL UPDATE with a false non-key predicate fails ConditionalCheckFailed and leaves the item
- ExecuteStatement - PartiQL DELETE with a false NOT begins_with predicate fails ConditionalCheckFailed
- ExecuteStatement - PartiQL DELETE with a true NOT begins_with predicate removes the item
- ExecuteStatement - PartiQL rejects a write WHERE clause that omits the primary key
- ExecuteTransaction - PartiQL idempotent replay under the same ClientRequestToken does not double-apply
-
scan Tier 1 9 failing
View these tests in the suite →- Scan - GSI sparse composite GSI: an item missing the GSI range key is not scanned
- Scan - LSI sparse LSI: an item missing the LSI sort key is not scanned
- Scan - legal shared-prefix projections accepts distinct list indices (l[0], l[1]) and returns both elements in order
- Scan - Select / ProjectionExpression rejections Select ALL_ATTRIBUTES with ProjectionExpression is rejected
- Scan - Select / ProjectionExpression rejections Select ALL_PROJECTED_ATTRIBUTES without an IndexName is rejected
- Scan - Select / ProjectionExpression rejections Select COUNT with ProjectionExpression is rejected
- Scan - Select / ProjectionExpression rejections Select ALL_PROJECTED_ATTRIBUTES with ProjectionExpression and no IndexName is rejected
- Scan - Select / ProjectionExpression rejections Select SPECIFIC_ATTRIBUTES without ProjectionExpression is rejected
- Scan - validation rejects TotalSegments above the maximum
-
getItem Tier 1 7 failing
View these tests in the suite →- ConsumedCapacity - single-item ops report only the aggregate, no read/write split a strongly-consistent GetItem reports 1 CapacityUnit and no read/write split
- ConsumedCapacity - single-item ops report only the aggregate, no read/write split a Query under INDEXES omits the split at the top level and on Table
- Nested attribute projection GetItem projects multiple list indices compacted and index-ordered
- Same list-index projection merge GetItem merges a scalar sibling and a nested-map sibling under one list index
- Same list-index projection merge GetItem merges two paths sharing an element of a nested list under one list index
- Same list-index projection merge GetItem keeps distinct inner list indices separate under one shared outer index
- Same list-index projection merge GetItem merges the shared index and keeps a distinct index separate, compacted
-
query Tier 1 6 failing
View these tests in the suite →- Query - KeyConditionExpression semantics rejects a nested path on a key attribute
- Query - legal shared-prefix projections accepts distinct list indices (l[0], l[1]) and returns both elements in order
- Query - Select / ProjectionExpression rejections Select ALL_ATTRIBUTES with ProjectionExpression is rejected
- Query - Select / ProjectionExpression rejections Select ALL_PROJECTED_ATTRIBUTES without an IndexName is rejected
- Query - Select / ProjectionExpression rejections Select COUNT with ProjectionExpression is rejected
- Query - Select / ProjectionExpression rejections Select ALL_PROJECTED_ATTRIBUTES with ProjectionExpression and no IndexName is rejected
-
batchWriteItem Tier 1 5 failing
View these tests in the suite →- BatchWriteItem - validation rejects a wrong-typed table key value
- BatchWriteItem - validation rejects a non-scalar table key value
- BatchWriteItem - validation rejects a wrong-typed index key value
- BatchWriteItem - validation rejects a non-scalar index key value
- BatchWriteItem - validation rejects an empty-string index key value
-
createTable Tier 1 5 failing
View these tests in the suite →- CreateTable - validation rejects PAY_PER_REQUEST with ProvisionedThroughput specified
- CreateTable - validation rejects a GSI INCLUDE projection without NonKeyAttributes
- CreateTable - validation rejects StreamSpecification with StreamEnabled false plus a StreamViewType
- CreateTable - LSI rejects an LSI INCLUDE projection without NonKeyAttributes
- CreateTable - index and stream spec validation rejects a KEYS_ONLY GSI projection carrying NonKeyAttributes
-
validation-ordering Tier 3 5 failing
View these tests in the suite →- CreateTable - validation ordering rejects an invalid BillingMode on its own
- Non-existent index - error surface Scan on a non-existent index reports ValidationException
- Non-existent index - error surface UpdateTable deleting a non-existent GSI reports ResourceNotFoundException
- Scan - validation ordering rejects a negative Segment
- UpdateItem - validation ordering rejects invalid ReturnValues (UpdateItem reports the first enum error)
-
putItem Tier 1 4 failing
View these tests in the suite →- PutItem - ConditionExpression rejects a BETWEEN with reversed bounds at parse time
- PutItem - validation rejects a wrong-typed index key attribute
- PutItem - validation rejects a non-scalar index key attribute
- PutItem - validation rejects an empty-string index key attribute
-
updateItem Tier 1 4 failing
View these tests in the suite →- UpdateItem - ReturnValues granularity UPDATED_NEW on a nested SET returns only the changed fragment
- UpdateItem - ReturnValues granularity REMOVE with UPDATED_NEW omits Attributes (nothing was set to a new value)
- UpdateItem - expression attribute hygiene rejects ExpressionAttributeNames supplied with no expression
- UpdateItem - nested path semantics SET fails when intermediate map path does not exist
-
backups Tier 2 3 skipped
View these tests in the suite →- On-demand backups - lifecycle and restore CreateBackup → DescribeBackup → ListBackups → DeleteBackup
- On-demand backups - lifecycle and restore RestoreTableFromBackup initiates a restore into a new table
- On-demand backups - lifecycle and restore DescribeBackup on a deleted backup throws BackupNotFoundException
-
updateTable Tier 2 3 failing
View these tests in the suite →- UpdateTable - add GSI drops an unused AttributeDefinition supplied with a GSI add
- UpdateTable - remove GSI removes a GSI from a table
- UpdateTable - GSI validation rejects a GSI keyed on a table attribute omitted from the request AttributeDefinitions
-
account Tier 2 unsupported
View these tests in the suite →- Account reads - DescribeLimits, DescribeEndpoints DescribeLimits returns positive account and table capacity limits
- Account reads - DescribeLimits, DescribeEndpoints DescribeEndpoints returns at least one endpoint with an address
-
contributorInsights Tier 2 unsupported
View these tests in the suite →- Contributor insights - enable/describe/list reports DISABLED by default
- Contributor insights - enable/describe/list enabling transitions the status and lists the table
-
export Tier 2 2 failing
View these tests in the suite →- Export and import - S3 ExportTableToPointInTime initiates an export and reports it
- Export and import - S3 ImportTable ingests S3 data into a new table
-
resourcePolicy Tier 2 unsupported
View these tests in the suite →- Resource policies - Put/Get/Delete GetResourcePolicy on a table with no policy throws PolicyNotFoundException
- Resource policies - Put/Get/Delete Put then Get round-trips the policy, and Delete removes it
-
batchGetItem Tier 1 1 failing
View these tests in the suite →- BatchGetItem - legal shared-prefix projections accepts distinct list indices (l[0], l[1]) and returns both elements in order