google / GoogleSignIn-iOS

Enables iOS and macOS apps to sign in with Google.
https://developers.google.com/identity/sign-in/ios
Apache License 2.0
478 stars 194 forks source link

Some google accounts can't login, "500. That's an error." #465

Closed Mioke closed 4 weeks ago

Mioke commented 1 month ago

Describe the bug Some of our users can't login using this SDK, it shows 500, That's an error. without more detail. They helped to try to login in Chrome app and it can login as normal.

To Reproduce I can't reproduce this issue, and the account holders can't share their accounts too.

Expected behavior Can login as normal.

Screenshots

SeaTalk_IMG_20240809_145551

Environment

camden-king commented 1 month ago

@Mioke Thanks for reporting this! We haven't noticed this behavior on our side. Can you please provide reproduction steps so we can look into it further?

woodmtw commented 1 month ago

I removed one of my gmail accounts from my iPhone 13 Pro Max and when trying to add the account back on I am getting the exact same error after entering my credentials. I am working fine on my iPad with that same gmail account and credentials. Have we discovered a new bug in the mail app? IMG_5893 IOS Version 17.5.1

jpweytjens commented 1 month ago

Same issue here. Can log in to all Google apps on iOS 17.5.1 and can log in to Google services in multiple browsers (Safari, Chrome, ...). Only when adding a Google account via the iOS settings, do I bump into the 500 error. The 500 error occurs after succesfully filling the password and 2FA authentication.

Opening the log in popup of the iOS settings menu in Chrome or any other browser doesn't help.

woodmtw commented 1 month ago

I did a restore from backup of my iPhone from a few months ago using iMazing, but this did not fix my problem. I have also cleared my Safari browser cache and history with no success. Went into iPhone settings and made Edge my default browser, instead of Safari, and tried again with no luck. This is not good as I have hundreds of contacts in my gmail account that I cannot get back on my iPhone until I am able to add my gmail account back on my iPhone. Guess I'll try to open a ticket with Apple Support.

Mioke commented 1 month ago

@camden-king Sorry I can't reproduce this issue too, there only a few of users of our app are facing this problem. But is there any advice for users to collect more error information? I can ask them for help.

woodmtw commented 1 month ago

...quick update. I had two other gmail accounts on my iPhone 13 Pro Max and I removed them as well. When trying to add back any one of the 3 gmail accounts into my native iPhone "Mail" app, they all fail with this same "500. That's an error." message. I haven't tried to remove them from my iPad as I don't want to be completely unable to access my email.

ywsang commented 1 month ago

@Mioke Any additional information they can provide about their sign-in attempt could be helpful: was it the first sign-in attempt or had the account successfully signed-in before? Was access to additional scopes granted? etc. Does updating the phone's OS to the latest version (iOS 17.6.1) help? Furthermore, if it's possible, any stack traces or a full screen recording of the sign-in flow resulting in the 500 error could help us debug. Without being able to repro the error ourselves, we unfortunately can't help much.

ywsang commented 1 month ago

Hi @woodmtw @jpweytjens! The GoogleSignIn-iOS SDK maintained in this GitHub repo deals with using a Google account to sign into a 3rd party app. Signing in via iOS Settings or the native "Mail" app doesn't use the GoogleSignIn-iOS SDK, so we can't offer much help. I'd suggest making sure your phone's OS is up-to-date and trying again, but otherwise it seems the issues you're experiencing are unrelated to GoogleSignIn-iOS.

Mioke commented 1 month ago

Add more information: only appears on iPhone with the same account, a user help to try on an Android device and it works fine. So it seams only occurs on specific accounts with the iOS SDK.

So the behavior is: on the same iPhone and using mail app and chrome app: can login. the same account and using the same our app on another Android phone: can login. only using the account on any iPhone in our app: can't login.

He tried to use an old version of my app with an old Google-SignIn SDK, also can't login so may be this's not related to the SDK version.

The screen record: https://github.com/user-attachments/assets/2674cfee-7b0e-44c5-b0cd-8b2d4f967a8c

The Safari console log: SeaTalk_IMG_20240813_103301

357257584-775e5c29-d6ea-451c-82f8-ffa23928fd50

@ywsang @camden-king

woodmtw commented 1 month ago

I just upgraded my IOS to 17.6.1 and can now add gmail accounts to my Mail app. Looks like they found a bug in the previous code and fixed it! @ywsang @camden-king @Mioke @jpweytjens

ywsang commented 4 weeks ago

@Mioke Thanks! Would you also be able to ask the user to provide any specifics about the sign-in attempt (for example, had the account signed in before? If yes, what's the reasoning to having to sign again? -- did the account disconnect and/or sign out, or had the account removed your app's access via Manage third-party connections before trying to sign in again?, etc).

In addition, would you be able to provide info about your GoogleSignIn configuration and which API method you're calling to trigger sign-in?

In general, any information that could help us replicate the scenario (and then hopefully be able to repro the issue) would be helpful.

woodmtw commented 4 weeks ago

@ywsang If you are asking me, I have had 3 Gmail accounts set up on my iPhone for over 2 years and had not had any trouble. I started having trouble with one of my Gmail accounts asking for a password and wasn't able to get it to accept it. I decided to remove that Gmail account from my iPhone and then re-add it. This is when I discovered I couldn't get past the "500. That' an error. That's all we know." message after providing my credentials. My iPad and PC continued to work fine with all 3 Gmail accounts. During troubleshooting, I decided to restore my phone from a backup from about 6 months ago. That didn't work because the IOS version wasn't reverted to during that process. I was running, and continued to run, v17.5.1 after the restore and still had the same error. I then deleted the other two Gmail accounts from my phone and couldn't add either one of those back in either. Only after upgrading my IOS to v17.6.1 was I able to re-add all 3 Gmail accounts. Hope that helps..

Mioke commented 4 weeks ago

Hi @ywsang thanks for your reply.

Most of the users experiencing this problem are new Google account users, but there is a user that he is our app admin and he wants to test the login flow, so he signed out the app and try to sign in again then found he was unable to do so. He helps to check the Manage third-party connections page and it shows as normal.

For additional context, this problem started last week—though we're not sure of the exact time—and we hadn't received any reports of this issue prior to then.

The GoogleSignIn configuration is simple:

let configuration = GIDConfiguration(clientID: clientID)        
GIDSignIn.sharedInstance.configuration = configuration

The API calling code:

GIDSignIn.sharedInstance.signIn(withPresenting: viewController, hint:emailAddress) { signInResult, error in
    // handle result 
}

handling the redirection:

func handleApplication(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {
    return GIDSignIn.sharedInstance.handle(url)
}

func handleApplication(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    return GIDSignIn.sharedInstance.handle(url)
}
Mioke commented 4 weeks ago

The issue we encountered should have just been resolved within the last hours, and users who experienced the problem can now log in normally. So it seems like this issue was related to the service. @ywsang @camden-king

ywsang commented 4 weeks ago

@Mioke glad to hear! Closing this issue now. Feel free to reach back out if the issue comes back.