diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt index 61f51abfb93..186bba118af 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt @@ -6,6 +6,7 @@ package software.aws.toolkits.jetbrains.core.credentials import com.intellij.openapi.Disposable import com.intellij.openapi.components.service import com.intellij.openapi.extensions.ExtensionPointName +import com.intellij.openapi.progress.ProcessCanceledException import com.intellij.openapi.project.Project import migration.software.aws.toolkits.jetbrains.services.telemetry.TelemetryService import software.amazon.awssdk.services.ssooidc.model.SsoOidcException @@ -259,18 +260,21 @@ fun reauthConnectionIfNeeded( } } catch (e: Exception) { if (isReAuth) { + val result = if (e is ProcessCanceledException) Result.Cancelled else Result.Failed recordLoginWithBrowser( credentialStartUrl = startUrl, credentialSourceId = getCredentialIdForTelemetry(connection), isReAuth = true, - result = Result.Failed + result = result ) recordAddConnection( credentialSourceId = getCredentialIdForTelemetry(connection), isReAuth = true, - result = Result.Failed + result = result ) } + + throw e } } } diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/webview/LoginBrowser.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/webview/LoginBrowser.kt index 53507380d09..b8d788789ff 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/webview/LoginBrowser.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/webview/LoginBrowser.kt @@ -52,6 +52,7 @@ import software.aws.toolkits.telemetry.Result import java.time.Duration import java.util.Timer import java.util.TimerTask +import java.util.concurrent.CancellationException import java.util.concurrent.Future import java.util.function.Function @@ -368,14 +369,11 @@ abstract class LoginBrowser( } protected fun isUserCancellation(e: Exception): Boolean { - if (e !is ProcessCanceledException || - e.cause !is IllegalStateException || - e.message?.contains(AwsCoreBundle.message("credentials.pending.user_cancel.message")) == false - ) { - return false + if (e is ProcessCanceledException || e is CancellationException) { + LOG.debug(e) { "User canceled login" } + return true } - LOG.debug(e) { "User canceled login" } - return true + return false } companion object {