Golang SDK for Dynamodb : ReturnValuesOnConditionCheckFailure does not return the details about conditions when conditionchcekfailure occurs

0

I am using golang sdk [https://pkg.go.dev/github.com/aws/aws-sdk-go@v1.45.26/] to debug conditional check errors and find information about why the failure occured in sIngle write operations, but I can only see the error Message_: "The conditional request failed". No other information regarding specific reason is provided when using the parameter ReturnValuesOnConditionCheckFailure: ALL_OLD in UpdateItemInput. In case of TransactWriteItems I can see specific reason of conditional check failure when using the same parameter. How can I obtain those details for single write operations as well? Reference: [https://aws.amazon.com/about-aws/whats-new/2023/06/amazon-dynamodb-cost-failed-conditional-writes] The syntax I am using:

input := &dynamodb.UpdateItemInput{
		TableName:                           aws.String("DummyTable"),
		Key:                                 keyAttr,
		ExpressionAttributeValues:           updateExpr.Values(),
		ExpressionAttributeNames:            updateExpr.Names(),
		ConditionExpression:                 updateExpr.Condition(),
		ReturnValues:                        aws.String(dynamodb.ReturnValueAllOld),
		UpdateExpression:                    updateExpr.Update(),
		ReturnValuesOnConditionCheckFailure: aws.String(dynamodb.ReturnValuesOnConditionCheckFailureAllOld),
}
output, err := dl.ddbI.UpdateItem(input)
Megha
posta 7 mesi fa335 visualizzazioni
1 Risposta
0
Risposta accettata

The issue was occurring because I was trying to use this feature with Dynamodb Local, however it is not not supported as of yet. When using AWS Dynamodb the details about the item can be seen in the error itself.

Megha
con risposta 7 mesi fa
profile picture
ESPERTO
verificato 2 mesi fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande