@@ -378,7 +378,7 @@ class SsoAccessTokenProvider(
378
378
is PKCEAuthorizationGrantToken -> loadPkceClientRegistration()
379
379
}
380
380
if (registration == null ) {
381
- val message = " Unable to load client registration"
381
+ val message = " Unable to load client registration from cache "
382
382
sendRefreshCredentialsMetric(
383
383
currentToken,
384
384
reason = " Null client registration" ,
@@ -388,6 +388,7 @@ class SsoAccessTokenProvider(
388
388
throw InvalidClientException .builder().message(message).build()
389
389
}
390
390
391
+ var stageName = RefreshCredentialStage .CREATE_TOKEN
391
392
try {
392
393
val newToken = client.createToken {
393
394
it.clientId(registration.clientId)
@@ -396,11 +397,13 @@ class SsoAccessTokenProvider(
396
397
it.refreshToken(currentToken.refreshToken)
397
398
}
398
399
400
+ stageName = RefreshCredentialStage .GET_TOKEN_DETAILS
399
401
val token = when (currentToken) {
400
402
is DeviceAuthorizationGrantToken -> newToken.toDAGAccessToken(currentToken.createdAt)
401
403
is PKCEAuthorizationGrantToken -> newToken.toPKCEAccessToken(currentToken.createdAt)
402
404
}
403
405
406
+ stageName = RefreshCredentialStage .SAVE_TOKEN
404
407
saveAccessToken(token)
405
408
406
409
sendRefreshCredentialsMetric(
@@ -417,12 +420,13 @@ class SsoAccessTokenProvider(
417
420
else -> null
418
421
}
419
422
val message = when (e) {
420
- is AwsServiceException -> e.awsErrorDetails()?.errorMessage() ? : " Unknown error"
421
- else -> e.message ? : " Unknown error"
422
- }
423
+ is AwsServiceException -> e.awsErrorDetails()?.errorMessage()
424
+ else -> e.message
425
+ } ? : " $stageName : Unknown error"
426
+
423
427
sendRefreshCredentialsMetric(
424
428
currentToken,
425
- reason = " Refresh access token request failed" ,
429
+ reason = " Refresh access token request failed: $stageName " ,
426
430
reasonDesc = message,
427
431
requestId = requestId,
428
432
result = Result .Failed
@@ -431,6 +435,12 @@ class SsoAccessTokenProvider(
431
435
}
432
436
}
433
437
438
+ enum class RefreshCredentialStage {
439
+ CREATE_TOKEN ,
440
+ GET_TOKEN_DETAILS ,
441
+ SAVE_TOKEN
442
+ }
443
+
434
444
private fun loadDagClientRegistration (): ClientRegistration ? =
435
445
cache.loadClientRegistration(dagClientRegistrationCacheKey)?.let {
436
446
return it
0 commit comments