Transactions can be retried using the Transient Fault Handling Application Block.
This extension helps you create a strategy that will detect transient faults when performing
transactions with Spanner.
To create an execution strategy, create a class
class SpannerTransientErrorDetectionStrategy : ITransientErrorDetectionStrategy
{
public bool IsTransient(Exception ex) => ex.IsTransientSpannerFault();
}
public static bool IsTransientSpannerFault(this Exception exception)
Returns true if the exception represents a transient error in Spanner.
This indicates that the operation may succeed if it is attempted again.
Common errors that can cause this include temporary network interruption
or the service being temporarily unavailable.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eGoogle.Cloud.Spanner.Data\u003c/code\u003e package available is \u003ccode\u003e5.0.0-beta05\u003c/code\u003e, with multiple prior versions listed for reference.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTransientFaultDetector\u003c/code\u003e class, found within the \u003ccode\u003eGoogle.Cloud.Spanner.Data\u003c/code\u003e namespace, aids in creating strategies to identify transient faults in Spanner transactions.\u003c/p\u003e\n"],["\u003cp\u003eA key functionality is the \u003ccode\u003eIsTransientSpannerFault\u003c/code\u003e method, which can be called on an exception to determine if it represents a temporary error that may resolve with retries.\u003c/p\u003e\n"],["\u003cp\u003eThe class that should be created and called on to utilize the \u003ccode\u003eIsTransientSpannerFault\u003c/code\u003e method should inherit the \u003ccode\u003eITransientErrorDetectionStrategy\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThis tool utilizes the Transient Fault Handling Application Block to perform the retrying of transactions that are found to have transient faults.\u003c/p\u003e\n"]]],[],null,[]]