A user is unable to sign in to the FreeCodeCamp forum using GitHub, encountering a blank page. The issue persists across browsers and after revoking and reauthorizing access. The problem is traced to a database error: a GithubUserInfo record already exists for the user with a conflicting github_user_id. The solution involves deleting the existing record for the user (ID 13460) and having the user re-authenticate via GitHub. ossia, codinghorror, cpradio, and techAPJ collaborated to diagnose and resolve the issue.
She’s tried using multiple browsers, while authenticated with GitHub, and she says she just can’t log in, and hasn’t been able to for months now. When she clicks the “sign in with GitHub” button while currently signed into her GitHub account, she just gets a blank page.
I’ve tried impersonating her account and logging out to see if I could fix the issue. Do you have any other ideas?
On Github, in her Profile > Emails section, does she have an email marked as Primary? (if not, have her mark one as Primary)
Does she have “Keep my email address private” checked? (if yes, can she uncheck it?)
Last thought, while at her Profile, have her go into Authorized Applications and revoke the access for your Discourse instance. That way it will request that access again at her next signin attempt.
I have made the suggested changes to my github profile preferences – my email is now public instead of private – it was already the primary email.
I’ve also tried revoking access to the FCC forum, after I tried to sign-up for the forum again it resulted in another blank pop-up window. After that I thought I’d try to use the sign-in button since github showed that the FCC forum was now authorized, but that only results in another blank pop-up window.
Note that she was able to use GitHub login to create an account on this meta instance of Discourse, though.
This error pops up when GithubAuthenticator library tries to create a new GithubUserInfo record.
It seems like the github_user_id we are receiving from GitHub is not matching the existing Discourse user record. I will start with looking up the existing GithubUserInfo record:
GithubUserInfo.find_by(user_id: 13460)
And check if the github_user_id is present. If it’s present, find out GitHub account detail of that ID, via this URL:
https://api.github.com/user/<github_user_id>
Try to find out how this ID got linked to mandihamza