diff --git a/hooks/useUser.ts b/hooks/useUser.ts index 6106f2e0..8901509b 100644 --- a/hooks/useUser.ts +++ b/hooks/useUser.ts @@ -431,7 +431,7 @@ const useUser = (): UseUserReturn => { ? 'User not found, please sign up' : error?.message || 'Network request timed out'; - if (error?.name === 'NotAllowedError') { + if (isPasskeyPromptError(error)) { errorMessage = 'User cancelled login'; Sentry.captureMessage(errorMessage, { level: 'warning', diff --git a/lib/utils/__tests__/passkey-credentials.test.ts b/lib/utils/__tests__/passkey-credentials.test.ts index 31c9f5a6..4f26db6a 100644 --- a/lib/utils/__tests__/passkey-credentials.test.ts +++ b/lib/utils/__tests__/passkey-credentials.test.ts @@ -65,6 +65,10 @@ describe('isPasskeyPromptError', () => { ['no matching credential', { message: 'No credentials available for this request' }], ['Turnkey credential lookup', { code: 'CREDENTIAL_NOT_FOUND', message: 'unknown' }], ['native exception', { message: 'androidx.credentials.NoCredentialException' }], + [ + 'Turnkey user cancellation', + { error: 'UserCancelled', message: 'The user cancelled the request.' }, + ], ])('treats a %s as a passkey prompt failure', (_label, error) => { expect(isPasskeyPromptError(error)).toBe(true); });