diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/RequestRetryablePolicy.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/RequestRetryablePolicy.swift index 4d087c5cbb..220834d187 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/RequestRetryablePolicy.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/RequestRetryablePolicy.swift @@ -41,6 +41,7 @@ class RequestRetryablePolicy: RequestRetryable { .dataNotAllowed, .cannotParseResponse, .networkConnectionLost, + .secureConnectionFailed, .userAuthenticationRequired: let waitMillis = retryDelayInMillseconds(for: attemptNumber) return RequestRetryAdvice(shouldRetry: true, retryInterval: .milliseconds(waitMillis)) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/RequestRetryablePolicyTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/RequestRetryablePolicyTests.swift index 498fdaddc6..39a83e9015 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/RequestRetryablePolicyTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/RequestRetryablePolicyTests.swift @@ -210,6 +210,17 @@ class RequestRetryablePolicyTests: XCTestCase { XCTAssertEqual(retryAdvice.retryInterval, defaultTimeout) } + func testSecureConnectionFailedError() { + let retryableErrorCode = URLError.init(.secureConnectionFailed) + + let retryAdvice = retryPolicy.retryRequestAdvice(urlError: retryableErrorCode, + httpURLResponse: nil, + attemptNumber: 1) + + XCTAssert(retryAdvice.shouldRetry) + assertMilliseconds(retryAdvice.retryInterval, greaterThan: 200, lessThan: 300) + } + func testMaxValueRetryDelay() { let retryableErrorCode = URLError.init(.timedOut)