The brief
The runtime retries failed calls to Durable Objects, including fetch() and RPC calls, up to four times by default, with no retry starting more than 10 seconds after the initial call. It does not retry errors thrown by the Durable Object code or errors with .overloaded set to true. The retryable() function from cloudflare:durable-objects can be used to mark methods as safe to run more than once.
To change the retry limits for one stub, a retry option can be passed to get() or getByName(), with maxRetries accepting 0 to 10 retries and timeoutMs accepting 500 to 60,000 milliseconds. If a method is marked as retryable, it will not run twice due to a retry, unless the connection drops and the runtime cannot tell whether the Durable Object received the call.