NoMethodError undefined method `chat_sound' with chat turned off

I’m going to wait to move this to #bug, as this is a non-standard install, but the image is built with launcher (then launched with Fargate in ECS behind a load balancer), so it seems like this probably isn’t because of the installation. That said, there are plenty of wonky things about this site, but I thought I’d report this in case it might be a problem for others.

Trying to log in with an admin link, I get this:

Started POST "/session/email-login/657e8390c8dec98db8cac2feaef96dcf" for at 2022-11-08 18:46:08 +0000                                                                                                             
Processing by SessionController#email_login as */*                                                             
  Parameters: {"second_factor_method"=>"1", "timezone"=>"America/Chicago", "token"=>"657e8390c8dec98db8cac2feaef96dcf"}
Completed 500 Internal Server Error in 107ms (ActiveRecord: 0.0ms | Allocations: 18703)
NoMethodError (undefined method `chat_sound' for #<UserOption:0x00007f748870c1d8>)                                                                                                                                             
(eval):39:in `_fast_attributes'                                                                                                                                                                                                
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'       
app/models/web_hook.rb:109:in `generate_payload'                                                               
app/models/web_hook.rb:63:in `enqueue_object_hooks'   
config/initializers/012-web_hook_events.rb:54:in `block (2 levels) in <main>'
lib/discourse_event.rb:14:in `block in trigger'
lib/discourse_event.rb:13:in `trigger'
app/models/email_token.rb:71:in `block in confirm'
app/models/email_token.rb:57:in `confirm'
app/controllers/session_controller.rb:373:in `email_login'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'

I went into the container and did cd /var/www/discourse/plugins;rm -rf chat; sv restart unicorn and was then able to log in.

I checked to see that the database had been migrated (though it ran for a bit before it was migrated). Also the Retort plugin was installed here at some point (but isn’t now).

Chat was disabled, so it seems like if someone else can replicate this, it looks like a pretty nasty bug, as the only way to fix it is to modify the running container.

I just built this image an hour or so ago. <meta name="generator" content="Discourse 2.9.0.beta11 - version d2ea39c932ec3ec07cbb7362c64ff3fb97c54a4a">

I see chat sound in the user_options table. And u.user_option.chat_sound returns nil when I do it from rails (oh, but that’s after I’ve removed the plugin).

I haven’t heard of anything like this. I might want to wait for another report before digging this.

1 Like

Sounds right. I’ll build and launch a new image tomorrow and see if I can make it happen again.

1 Like

Thanks! That would be helpful!

1 Like

Well, whatever it was. It went away. :person_shrugging:

I pushed the same image this morning and it Just Worked. All I can figure is that somehow the database wasn’t fully migrated or something, but it looked Really Bad there for a few minutes.

1 Like

Thabks for double checking!

1 Like

Having cried about yet another wolf, it was the least I could do.

1 Like

No worries, it’s also possible you hit something real, we have had errors in some migrations in last days, so maybe it’s been causing issues for you during this window.

1 Like