diff --git a/AppUIComponents/LoginOptions/LoginOptionsViewModel.swift b/AppUIComponents/LoginOptions/LoginOptionsViewModel.swift index 5290f7f..1cc30db 100644 --- a/AppUIComponents/LoginOptions/LoginOptionsViewModel.swift +++ b/AppUIComponents/LoginOptions/LoginOptionsViewModel.swift @@ -37,7 +37,7 @@ final class LoginOptionsViewModel: ObservableObject { return (isAuthenticated != nil) ? .welcome : nil } catch { - debugPrint("Check authentication failed!!!") + debugPrint("Check authentication failed!!!. Error: \(error)") return nil } } diff --git a/Auth0UniversalComponents/AuthMethodsHome/Presentation/MyAccountAuthMethodsViewModel.swift b/Auth0UniversalComponents/AuthMethodsHome/Presentation/MyAccountAuthMethodsViewModel.swift index 27ccbcb..e244cf7 100644 --- a/Auth0UniversalComponents/AuthMethodsHome/Presentation/MyAccountAuthMethodsViewModel.swift +++ b/Auth0UniversalComponents/AuthMethodsHome/Presentation/MyAccountAuthMethodsViewModel.swift @@ -151,6 +151,7 @@ final class MyAccountAuthMethodsViewModel: ObservableObject, ErrorViewModelHandl self.viewComponents = [.emptyFactors] } } catch { + debugPrint("Error occured in My Account Auth View: \(error)") await handle(error: error, scope: "openid read:me:factors read:me:authentication_methods") { [weak self] in Task { await self?.loadMyAccountAuthViewComponentData() diff --git a/Auth0UniversalComponents/Passkeys/Presentation/PasskeysEnrollmentViewModel.swift b/Auth0UniversalComponents/Passkeys/Presentation/PasskeysEnrollmentViewModel.swift index c5917d3..ce1d11b 100644 --- a/Auth0UniversalComponents/Passkeys/Presentation/PasskeysEnrollmentViewModel.swift +++ b/Auth0UniversalComponents/Passkeys/Presentation/PasskeysEnrollmentViewModel.swift @@ -79,7 +79,7 @@ final class PasskeysEnrollmentViewModel: NSObject, enrollPasskey() } catch { showLoader = false - errorViewModel = Auth0UIComponentError.unknown().errorViewModel { [weak self] in + errorViewModel = Auth0UIComponentError.unknown(message: error.localizedDescription).errorViewModel { [weak self] in Task { await self?.startEnrollment() } } } @@ -129,24 +129,32 @@ final class PasskeysEnrollmentViewModel: NSObject, func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: any Error) { showLoader = false - if let authError = error as? ASAuthorizationError, authError.code != .canceled { - errorViewModel = Auth0UIComponentError.unknown().errorViewModel { [weak self] in - Task { - await self?.startEnrollment() - } - } - } else { + guard let authError = error as? ASAuthorizationError else { Task { [weak self] in await self?.handle( error: error, scope: "openid create:me:authentication_methods", retryCallback: { - Task { - await self?.startEnrollment() - } + Task { await self?.startEnrollment() } } ) } + return + } + + switch authError.code { + case .canceled: + break + case .failed: + // Code 1004: platform rejected the request — most commonly a domain association + // misconfiguration (entitlements webcredentials entry or AASA file on the server). + errorViewModel = Auth0UIComponentError.unknown(message: authError.localizedDescription).errorViewModel { [weak self] in + Task { await self?.startEnrollment() } + } + default: + errorViewModel = Auth0UIComponentError.unknown().errorViewModel { [weak self] in + Task { await self?.startEnrollment() } + } } }