diff --git a/packages/connect-react/src/components/login/LoginErrorScreenSoft.tsx b/packages/connect-react/src/components/login/LoginErrorScreenSoft.tsx index 310267a5..7ceb63c2 100644 --- a/packages/connect-react/src/components/login/LoginErrorScreenSoft.tsx +++ b/packages/connect-react/src/components/login/LoginErrorScreenSoft.tsx @@ -44,7 +44,7 @@ const LoginErrorScreenSoft = ({ previousAssertionOptions }: Props) => { const resFinish = await getConnectService().loginContinue(resStart.val); if (resFinish.err) { - if (resFinish.val.type === ConnectErrorType.Cancel) { + if (resFinish.val.type === ConnectErrorType.Cancel || resFinish.val.type === ConnectErrorType.Untyped) { return handleSituation( LoginSituationCode.ClientPasskeyOperationCancelled, resFinish.val, diff --git a/packages/connect-react/src/components/login/LoginHybridScreen.tsx b/packages/connect-react/src/components/login/LoginHybridScreen.tsx index 445e90b6..2a059e14 100644 --- a/packages/connect-react/src/components/login/LoginHybridScreen.tsx +++ b/packages/connect-react/src/components/login/LoginHybridScreen.tsx @@ -24,7 +24,7 @@ const LoginHybridScreen = (resStart: ConnectLoginStartRsp) => { setLoading(true); const res = await getConnectService().loginContinue(resStart); if (res.err) { - if (res.val.type === ConnectErrorType.Cancel) { + if (res.val.type === ConnectErrorType.Cancel || res.val.type === ConnectErrorType.Untyped) { return handleSituation(LoginSituationCode.ClientPasskeyOperationCancelled, res.val); } diff --git a/packages/connect-react/src/components/login/LoginInitScreen.tsx b/packages/connect-react/src/components/login/LoginInitScreen.tsx index 079ae3b7..6727aea5 100644 --- a/packages/connect-react/src/components/login/LoginInitScreen.tsx +++ b/packages/connect-react/src/components/login/LoginInitScreen.tsx @@ -103,7 +103,7 @@ const LoginInitScreen: FC = ({ showFallback = false }) => { const res = await getConnectService().loginInit(ac); if (res.err) { - if (res.val.type === ConnectErrorType.Cancel) { + if (res.val.type === ConnectErrorType.Cancel || res.val.type === ConnectErrorType.Untyped) { return; } @@ -163,7 +163,7 @@ const LoginInitScreen: FC = ({ showFallback = false }) => { if (res.err) { // if a user cancel during CUI, she can try again - if (res.val.type === ConnectErrorType.Cancel) { + if (res.val.type === ConnectErrorType.Cancel || res.val.type === ConnectErrorType.Untyped) { return handleSituation(LoginSituationCode.ClientPasskeyConditionalOperationCancelled, res.val); } @@ -230,7 +230,7 @@ const LoginInitScreen: FC = ({ showFallback = false }) => { const res = await getConnectService().loginContinue(resStart.val); if (res.err) { setIdentifierBasedLoading(false); - if (res.val.type === ConnectErrorType.Cancel) { + if (res.val.type === ConnectErrorType.Cancel || res.val.type === ConnectErrorType.Untyped) { return handleSituation( LoginSituationCode.ClientPasskeyOperationCancelled, res.val, diff --git a/packages/connect-react/src/components/login/LoginPasskeyReLoginScreen.tsx b/packages/connect-react/src/components/login/LoginPasskeyReLoginScreen.tsx index 74db94aa..d28100dc 100644 --- a/packages/connect-react/src/components/login/LoginPasskeyReLoginScreen.tsx +++ b/packages/connect-react/src/components/login/LoginPasskeyReLoginScreen.tsx @@ -49,7 +49,7 @@ export const LoginPasskeyReLoginScreen = () => { const resFinish = await getConnectService().loginContinue(resStart.val); if (resFinish.err) { - if (resFinish.val.type === ConnectErrorType.Cancel) { + if (resFinish.val.type === ConnectErrorType.Cancel || resFinish.val.type === ConnectErrorType.Untyped) { return handleSituation(LoginSituationCode.ClientPasskeyOperationCancelled, resFinish.val); } diff --git a/packages/connect-react/src/components/passkeyList/PasskeyListScreen.tsx b/packages/connect-react/src/components/passkeyList/PasskeyListScreen.tsx index c0528ae6..386a10d9 100644 --- a/packages/connect-react/src/components/passkeyList/PasskeyListScreen.tsx +++ b/packages/connect-react/src/components/passkeyList/PasskeyListScreen.tsx @@ -188,8 +188,8 @@ const PasskeyListScreen = () => { case PasskeyListSituationCode.ClientExcludeCredentialsMatch: setAppendLoading(false); void getConnectService().recordEventAppendCredentialExistsError( - attestationOptions ?? '', `${messageCode} ${error?.track()}`, + attestationOptions ?? '', ); show(); break; diff --git a/packages/web-core/src/utils/errors/connectErrors.ts b/packages/web-core/src/utils/errors/connectErrors.ts index b3bb7d3a..563f37c9 100644 --- a/packages/web-core/src/utils/errors/connectErrors.ts +++ b/packages/web-core/src/utils/errors/connectErrors.ts @@ -9,6 +9,7 @@ export enum ConnectErrorType { SecurityError, ExcludeCredentialsMatch, RaceTimeout, + Untyped, } export class ConnectError { @@ -68,7 +69,7 @@ export class ConnectError { case 'InvalidStateError': return new ConnectError(ConnectErrorType.ExcludeCredentialsMatch, e.message, runtime); default: - return new ConnectError(ConnectErrorType.InvalidState, e.message, runtime); + return new ConnectError(ConnectErrorType.Untyped, e.message, runtime); } } @@ -77,9 +78,9 @@ export class ConnectError { return new ConnectError(ConnectErrorType.Cancel, e.message); } - return new ConnectError(ConnectErrorType.InvalidState, e.message); + return new ConnectError(ConnectErrorType.Untyped, e.message); } - return new ConnectError(ConnectErrorType.InvalidState, `unknown ${e}`); + return new ConnectError(ConnectErrorType.Untyped, `unknown ${e}`); } }