I just tested it and it works perfectly fine for me. Could he perhaps provide any further information, screenshots, any errors he's seeing in his JavaScript console?
We should at the least update the error message to describe what is happening and give the user a way of fixing it.
The other issue says there is an updated error page with better copy but I just tried it and I see the same 422 error message for google as there is for github.
First step would be making sure these error pages get updated. The copy should inform the user what is wrong and provide steps to fix it.
**Signing [in/up] with [Service] failed**The email associated with your [service] account has already been taken. Please try signing in using your email or username. If you've forgotten your password, try recovering it.[Sign in] [Recover password]If none of these options work, try contacting a [GitLab administrator](email link).
@hazelyang Would you able to help with the design and graphic?
As a second step maybe look into ways of linking. I'm not sure of the technical restraints here but Stan mentioned: Automatically link the social account to an existing user based on e-mail address. We can only do this if we trust the OAuth2 provider to give us a valid e-mail address, which may or may not necessarily be true. We should include a parameter in the settings to enable this automatic linkage.
@stanhu I didn't have time yet to thoroughly investigate locally, but this is what I've found so far.
In Ngnix.parse_error_pagescustom_error_pages is checked if there are custom pages for the various http status is. If there are the custom page is used, if there isn't the default page is used. In nginx-gitlab-http.conf.erb the error_page statement for each status code is added.
We might consider to not add the error_page statement if there isn't a custom page installed. But maybe @ibaum can provide a good reason why it was added like this.