public sealed class RetryInfo : IMessage<RetryInfo>, IEquatable<RetryInfo>, IDeepCloneable<RetryInfo>, IBufferMessage, IMessage
Describes when the clients can retry a failed request. Clients could ignore
the recommendation here or retry when this information is missing from error
responses.
It's always recommended that clients should use exponential backoff when
retrying.
Clients should wait until retry_delay amount of time has passed since
receiving the error response before retrying. If retrying requests also
fail, clients should use an exponential backoff scheme to gradually increase
the delay between retries based on retry_delay, until either a maximum
number of retries have been reached or a maximum retry delay cap has been
reached.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eRetryInfo class provides guidelines for clients on how to handle retries for failed requests, recommending exponential backoff strategies.\u003c/p\u003e\n"],["\u003cp\u003eClients are advised to wait for a specified \u003ccode\u003eretry_delay\u003c/code\u003e before attempting to retry a request and to increase delays between retries if failures persist.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRetryInfo\u003c/code\u003e class implements interfaces like IMessage, IEquatable, IDeepCloneable, and IBufferMessage, providing capabilities for message handling, comparison, deep cloning, and buffered operations.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes properties like \u003ccode\u003eRetryDelay\u003c/code\u003e which suggests a duration clients should wait before retrying, and static properties such as \u003ccode\u003eDescriptor\u003c/code\u003e and \u003ccode\u003eParser\u003c/code\u003e for message metadata and parsing.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRetryInfo\u003c/code\u003e object offers methods like \u003ccode\u003eClone()\u003c/code\u003e, \u003ccode\u003eEquals()\u003c/code\u003e, \u003ccode\u003eMergeFrom()\u003c/code\u003e, \u003ccode\u003eCalculateSize()\u003c/code\u003e, \u003ccode\u003eWriteTo()\u003c/code\u003e, and \u003ccode\u003eToString()\u003c/code\u003e for cloning, comparison, merging, size calculation, serialization, and string representation.\u003c/p\u003e\n"]]],[],null,["# Class RetryInfo (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Rpc.RetryInfo)\n- [2.15.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.15.0/Google.Rpc.RetryInfo)\n- [2.10.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.10.0/Google.Rpc.RetryInfo)\n- [2.2.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.2.0/Google.Rpc.RetryInfo) \n\n public sealed class RetryInfo : IMessage\u003cRetryInfo\u003e, IEquatable\u003cRetryInfo\u003e, IDeepCloneable\u003cRetryInfo\u003e, IBufferMessage, IMessage\n\nDescribes when the clients can retry a failed request. Clients could ignore\nthe recommendation here or retry when this information is missing from error\nresponses.\n\nIt's always recommended that clients should use exponential backoff when\nretrying.\n\nClients should wait until `retry_delay` amount of time has passed since\nreceiving the error response before retrying. If retrying requests also\nfail, clients should use an exponential backoff scheme to gradually increase\nthe delay between retries based on `retry_delay`, until either a maximum\nnumber of retries have been reached or a maximum retry delay cap has been\nreached. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e RetryInfo \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[RetryInfo](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Rpc.RetryInfo), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[RetryInfo](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Rpc.RetryInfo), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[RetryInfo](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Rpc.RetryInfo), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals)\n\nNamespace\n---------\n\n[Google.Rpc](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Rpc)\n\nAssembly\n--------\n\nGoogle.Api.CommonProtos.dll\n\nConstructors\n------------\n\n### RetryInfo()\n\n public RetryInfo()\n\n### RetryInfo(RetryInfo)\n\n public RetryInfo(RetryInfo other)\n\nFields\n------\n\n### RetryDelayFieldNumber\n\n public const int RetryDelayFieldNumber = 1\n\nField number for the \"retry_delay\" field.\n\nProperties\n----------\n\n### Descriptor\n\n public static MessageDescriptor Descriptor { get; }\n\n### Parser\n\n public static MessageParser\u003cRetryInfo\u003e Parser { get; }\n\n### RetryDelay\n\n public Duration RetryDelay { get; set; }\n\nClients should wait at least this long between retrying the same request.\n\nMethods\n-------\n\n### CalculateSize()\n\n public int CalculateSize()\n\n### Clone()\n\n public RetryInfo Clone()\n\n### Equals(RetryInfo)\n\n public bool Equals(RetryInfo other)\n\n### Equals(object)\n\n public override bool Equals(object other)\n\n**Overrides** \n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object))\n\n### GetHashCode()\n\n public override int GetHashCode()\n\n**Overrides** \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode)\n\n### MergeFrom(CodedInputStream)\n\n public void MergeFrom(CodedInputStream input)\n\n### MergeFrom(RetryInfo)\n\n public void MergeFrom(RetryInfo other)\n\n### ToString()\n\n public override string ToString()\n\n**Overrides** \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\n### WriteTo(CodedOutputStream)\n\n public void WriteTo(CodedOutputStream output)"]]