Skip to content

Commit 8b0080f

Browse files
authored
fix(core): don't retry on InvalidGrantException because it is terminal (#5764)
this is not a retryable exception
1 parent 35efa6c commit 8b0080f

File tree

2 files changed

+2
-12
lines changed

2 files changed

+2
-12
lines changed

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sso/bearer/BearerTokenProvider.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import software.amazon.awssdk.regions.Region
1717
import software.amazon.awssdk.services.ssooidc.SsoOidcClient
1818
import software.amazon.awssdk.services.ssooidc.SsoOidcTokenProvider
1919
import software.amazon.awssdk.services.ssooidc.internal.OnDiskTokenManager
20-
import software.amazon.awssdk.services.ssooidc.model.InvalidGrantException
2120
import software.amazon.awssdk.services.ssooidc.model.SsoOidcException
2221
import software.amazon.awssdk.utils.SdkAutoCloseable
2322
import software.amazon.awssdk.utils.cache.CachedSupplier
@@ -252,13 +251,6 @@ internal val DEFAULT_PREFETCH_DURATION = Duration.ofMinutes(20)
252251
val ssoOidcClientConfigurationBuilder: (ClientOverrideConfiguration.Builder) -> ClientOverrideConfiguration.Builder = { configuration ->
253252
configuration.nullDefaultProfileFile()
254253

255-
// Add InvalidGrantException to the RetryOnExceptionsCondition
256-
configuration.retryStrategy { strategy ->
257-
strategy.retryOnException {
258-
it is InvalidGrantException
259-
}
260-
}
261-
262254
configuration.addExecutionInterceptor(object : ExecutionInterceptor {
263255
override fun modifyException(context: Context.FailedExecution, executionAttributes: ExecutionAttributes): Throwable {
264256
val exception = context.exception()

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/credentials/sso/bearer/InteractiveBearerTokenProviderTest.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,14 @@ class InteractiveBearerTokenProviderTest {
8484
}
8585

8686
@Test
87-
fun `oidcClient retries twice on InvalidGrantException failure`() {
87+
fun `oidcClient does not retry on InvalidGrantException failure`() {
8888
fun verifyRetryAttempts(configuration: ClientOverrideConfiguration.Builder) {
8989
configuration.addExecutionInterceptor(
9090
object : ExecutionInterceptor {
9191
override fun onExecutionFailure(context: Context.FailedExecution?, executionAttributes: ExecutionAttributes?) {
9292
super.onExecutionFailure(context, executionAttributes)
9393

94-
// 3 total network calls, showing 4 since the sdk increments the attempt count at the beginning
95-
// of the loop before it checks whether it's allowed to retry.
96-
assertThat(executionAttributes?.getAttribute(InternalCoreExecutionAttribute.EXECUTION_ATTEMPT)).isEqualTo(4)
94+
assertThat(executionAttributes?.getAttribute(InternalCoreExecutionAttribute.EXECUTION_ATTEMPT)).isEqualTo(1)
9795
}
9896
}
9997
)

0 commit comments

Comments
 (0)