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 Likes

We should probably take a look at this one @eviltrout

2 Likes

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

5 Likes

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

6 Likes

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

1 Like

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 Likes