DynamoDB / Client / exceptions / TransactionInProgressException
TransactionInProgressException¶
- class DynamoDB.Client.exceptions.TransactionInProgressException¶
- The transaction with the given request token is already in progress. - Recommended Settings - Note- This is a general recommendation for handling the - TransactionInProgressException. These settings help ensure that the client retries will trigger completion of the ongoing- TransactWriteItemsrequest.- Set - clientExecutionTimeoutto a value that allows at least one retry to be processed after 5 seconds have elapsed since the first attempt for the- TransactWriteItemsoperation.
- Set - socketTimeoutto a value a little lower than the- requestTimeoutsetting.
- requestTimeoutshould be set based on the time taken for the individual retries of a single HTTP request for your use case, but setting it to 1 second or higher should work well to reduce chances of retries and- TransactionInProgressExceptionerrors.
- Use exponential backoff when retrying and tune backoff if needed. 
 - Assuming default retry policy, example timeout settings based on the guidelines above are as follows: - Example timeline: - 0-1000 first attempt 
- 1000-1500 first sleep/delay (default retry policy uses 500 ms as base delay for 4xx errors) 
- 1500-2500 second attempt 
- 2500-3500 second sleep/delay (500 * 2, exponential backoff) 
- 3500-4500 third attempt 
- 4500-6500 third sleep/delay (500 * 2^2) 
- 6500-7500 fourth attempt (this can trigger inline recovery since 5 seconds have elapsed since the first attempt reached TC) 
 - Example- try: ... except client.exceptions.TransactionInProgressException as e: print(e.response) - response¶
- The parsed error response. All exceptions have a top level - Errorkey that provides normalized access to common exception atrributes. All other keys are specific to this service or exception class.- Syntax- { 'Message': 'string', 'Error': { 'Code': 'string', 'Message': 'string' } } - Structure- (dict) – - The transaction with the given request token is already in progress. - Recommended Settings - Note- This is a general recommendation for handling the - TransactionInProgressException. These settings help ensure that the client retries will trigger completion of the ongoing- TransactWriteItemsrequest.- Set - clientExecutionTimeoutto a value that allows at least one retry to be processed after 5 seconds have elapsed since the first attempt for the- TransactWriteItemsoperation.
- Set - socketTimeoutto a value a little lower than the- requestTimeoutsetting.
- requestTimeoutshould be set based on the time taken for the individual retries of a single HTTP request for your use case, but setting it to 1 second or higher should work well to reduce chances of retries and- TransactionInProgressExceptionerrors.
- Use exponential backoff when retrying and tune backoff if needed. 
 - Assuming default retry policy, example timeout settings based on the guidelines above are as follows: - Example timeline: - 0-1000 first attempt 
- 1000-1500 first sleep/delay (default retry policy uses 500 ms as base delay for 4xx errors) 
- 1500-2500 second attempt 
- 2500-3500 second sleep/delay (500 * 2, exponential backoff) 
- 3500-4500 third attempt 
- 4500-6500 third sleep/delay (500 * 2^2) 
- 6500-7500 fourth attempt (this can trigger inline recovery since 5 seconds have elapsed since the first attempt reached TC) 
 - Message (string) – 
- Error (dict) – Normalized access to common exception attributes. - Code (string) – An identifier specifying the exception type. 
- Message (string) – A descriptive message explaining why the exception occured.