amazon web services – Rust AWS SDK DynamoDB Conditional Check Error Handling

Does the Rust AWS SDK provide information on where a DynamoDB conditional check failed exactly? I have multiple conditional checks and the Err response doesn’t shed any light on which condition failed.

TransactionCanceledException(TransactionCanceledException { message:
Some(“Transaction cancelled, please refer cancellation reasons for
specific reasons [None, ConditionalCheckFailed]”),
cancellation_reasons: Some([CancellationReason { item: None, code:
Some(“None”), message: None }, CancellationReason { item: None, code:
Some(“ConditionalCheckFailed”), message: Some(“The conditional request
failed”) }]), meta: ErrorMetadata { code:
Some(“TransactionCanceledException”), message: Some(“Transaction
cancelled, please refer cancellation reasons for specific reasons
[None, ConditionalCheckFailed]”),

docs.rs/aws-sdk-dynamodb/latest/aws_sdk_dynamodb/types/error/struct.ConditionalCheckFailedException.html

let request = client
        .transact_write_items()
        .set_transact_items(Some(transact_items));

    match request.send().await {
        Err(err) => {
            match err.into_service_error() {
                aws_sdk_dynamodb::operation::transact_write_items::TransactWriteItemsError::TransactionCanceledException(i) => {
                    println!("reason: {:?}", &i.cancellation_reasons().unwrap());
                },
                _ => todo!(),
            };

[CancellationReason { item: None, code: Some(“None”), message: None },
CancellationReason { item: None, code: Some(“ConditionalCheckFailed”),
message: Some(“The conditional request failed”) }]

Read more here: Source link