New signups via Steam login are broken

When signing up with a Steam account, you’re prompted to provide an e-mail address and a username - when clicking create new account after filling in these 2 fields the “Something went wrong, perhaps this email is already registered, try the forgot password link” error appears.

Info:

NoMethodError (undefined method `downcase' for nil:NilClass)
/var/www/discourse/app/services/user_authenticator.rb:43:in `authenticated?'

Backtrace:

/var/www/discourse/app/services/user_authenticator.rb:43:in `authenticated?'
/var/www/discourse/app/services/user_authenticator.rb:15:in `start'
/var/www/discourse/app/controllers/users_controller.rb:563:in `create'
actionpack-6.0.3.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.0.3.1/lib/abstract_controller/base.rb:195:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.0.3.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.0.3.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
actionpack-6.0.3.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `block in instrument'
activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `instrument'
actionpack-6.0.3.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
actionpack-6.0.3.1/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord-6.0.3.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-6.0.3.1/lib/abstract_controller/base.rb:136:in `process'
actionview-6.0.3.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-2.0.2/lib/mini_profiler/profiling_methods.rb:78:in `block in profile_method'
actionpack-6.0.3.1/lib/action_controller/metal.rb:190:in `dispatch'
actionpack-6.0.3.1/lib/action_controller/metal.rb:254:in `dispatch'
actionpack-6.0.3.1/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack-6.0.3.1/lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack-6.0.3.1/lib/action_dispatch/journey/router.rb:49:in `block in serve'
actionpack-6.0.3.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-6.0.3.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-6.0.3.1/lib/action_dispatch/routing/route_set.rb:834:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
rack-2.2.2/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.2/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.2/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:318:in `call'
rack-2.2.2/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.2/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/cookies.rb:648:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-6.0.3.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack-6.0.3.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster-2.9.0/lib/logster/middleware/reporter.rb:43:in `call'
railties-6.0.3.1/lib/rails/rack/logger.rb:37:in `call_app'
railties-6.0.3.1/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:19:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:22:in `call'
rack-2.2.2/lib/rack/method_override.rb:24:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.2/lib/rack/sendfile.rb:110:in `call'
actionpack-6.0.3.1/lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
rack-mini-profiler-2.0.2/lib/mini_profiler/profiler.rb:200:in `call'
message_bus-3.3.1/lib/message_bus/rack/middleware.rb:61:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:176:in `call'
railties-6.0.3.1/lib/rails/engine.rb:527:in `call'
railties-6.0.3.1/lib/rails/railtie.rb:190:in `public_send'
railties-6.0.3.1/lib/rails/railtie.rb:190:in `method_missing'
rack-2.2.2/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.2/lib/rack/urlmap.rb:58:in `each'
rack-2.2.2/lib/rack/urlmap.rb:58:in `call'
unicorn-5.5.5/lib/unicorn/http_server.rb:605:in `process_client'
unicorn-5.5.5/lib/unicorn/http_server.rb:701:in `worker_loop'
unicorn-5.5.5/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
unicorn-5.5.5/lib/unicorn/http_server.rb:144:in `start'
unicorn-5.5.5/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'

The parameters look valid

We’re using Installed 2.6.0.beta1 ( c86b1ee9d1 )

「いいね!」 3

We should probably take a look at this one @eviltrout

「いいね!」 2

I’ll take a look, it could be related to my recent auth changes :eyes:

「いいね!」 5

Thanks @jamieh for the detailed report and the backtrace. It was indeed related to my recent changes. Specifically, if an authentication provider did not pass an email address, it would cause an error. It should be fixed by

https://github.com/discourse/discourse/commit/fbf29443bdb84e0a07a34a82d7893ab967854bd9

「いいね!」 6

Will test it once it’s available on the beta branch, thanks for the quick fix!

「いいね!」 1

Confirmed fixed, thanks for the quick turn around!

Not sure if I can close my own thread but I guess this can be closed now.

「いいね!」 2