I've seen multiple forum posts about the issue of receiving the 422: The change you requested was rejected message after logging into GitLab.
While this may manifest from different underlying issues, in my case, this was due to not having HTTPS configured directly on GitLab. To be clear, I already has HTTPS terminated on my reverse proxy. GitLab still wasn't accepting that it wasn't setup directly on itself.
Before: GitLab ---[HTTP]--- RevProxy ---[HTTPS]--- Client
After: GitLab ---[HTTPS]--- RevProxy ---[HTTPS]--- Client
I generated a self-signed cert on the GitLab server host, pointed GitLab at the cert and key files, restarted GitLab and the 422 message went away.
I enabled the following config:
nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
...
nginx['ssl_certificate'] = "/etc/ssl/private/gitlab-1.crt"
nginx['ssl_certificate_key'] = "/etc/ssl/private/gitlab-1.key"
...
nginx['hsts_max_age'] = 0
...
nginx['listen_port'] = 443
...
nginx['listen_https'] = true
...
nginx['proxy_set_headers'] = {
"Host" => "$http_host_with_default",
"X-Real-IP" => "$remote_addr",
"X-Forwarded-For" => "$proxy_add_x_forwarded_for",
"X-Forwarded-Proto" => "https",
"X-Forwarded-Ssl" => "on",
"Upgrade" => "$http_upgrade",
"Connection" => "$connection_upgrade"
}