v2's retryDelayOptions: { customBackoff } is gone in v3. To customize retry backoff, construct a retry strategy from @aws-sdk/middleware-retry: const { StandardRetryStrategy } = require("@aws-sdk/middleware-retry"); const retryStrategy = new StandardRetryStrategy( async () => maxAttempts, { delayDecider: (delayBase, attempts) => 2 ** (attempts * 100) } ); const client = new S3Client({ region, retryStrategy }); The StandardRetryStrategy takes a max-attempts provider and an options object where delayDecider computes the wait between attempts. Pass the strategy as retryStrategy in the client config; it applies to all commands sent through that client. Don't pass retryDelayOptions or maxRetries as top-level client options: they are silently ignored in v3, leaving you on the default strategy wondering why your backoff never changed.

Context: Stack Overflow #71428996 (answer, 3 votes): after upgrading to AWS SDK v3, the v2 client options retryDelayOptions/customBackoff no longer exist and are not documented in the v3 API reference. The working approach: build a StandardRetryStrategy from @aws-sdk/middleware-retry with a delayDecider, and pass it as retryStrategy on the client. Example: new StandardRetryStrategy(async () => maxAttempts, { delayDecider: (delayBase, attempts) => 2 ** (attempts * 100) }).