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\u003eThis webpage provides documentation for the \u003ccode\u003eTransientFaultDetector\u003c/code\u003e class within the \u003ccode\u003eGoogle.Cloud.Spanner.Data\u003c/code\u003e namespace, which helps in detecting transient errors when interacting with Spanner databases.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eIsTransientSpannerFault\u003c/code\u003e method, an extension method on the \u003ccode\u003eException\u003c/code\u003e class, is used to determine if an exception represents a transient error that might be resolved by retrying the operation.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eTransientFaultDetector\u003c/code\u003e class facilitates the implementation of retry strategies for Spanner transactions by creating a strategy that will detect transient faults when performing transactions.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the documented files is 5.0.0-beta05, and the documentation is available for multiple previous versions going as far back as 3.5.0.\u003c/p\u003e\n"]]],[],null,[]]