Undefined method `denied' for Emoji:Class

AI-generated summary

The discussion revolves around an error “undefined method `denied’ for Emoji:Class” affecting outgoing emails in a Discourse instance. Alexander_Wright shared the error message and backtrace, and awesomerobot suggested it might be related to a known issue with emoji reactions. zogstrip asked Alexander_Wright to update to the latest version and restart the server, which Alexander_Wright did, but the issue persists. Alexander_Wright then shared a Sidekiq history screenshot in an attempt to troubleshoot the issue further.

I’m receiving a number of errors as follows:
This appears to be affecting outgoing emails.

Job exception: undefined method `denied' for Emoji:Class

        __optInput.emojiDenyList = #{Emoji.denied.to_json};
                                          ^^^^^^^
Backtrace
/var/www/discourse/lib/pretty_text.rb:205:in `block in markdown' 
/var/www/discourse/lib/pretty_text.rb:662:in `block in protect' 
/var/www/discourse/lib/pretty_text.rb:662:in `synchronize' 
/var/www/discourse/lib/pretty_text.rb:662:in `protect' 
/var/www/discourse/lib/pretty_text.rb:177:in `markdown' 
/var/www/discourse/lib/pretty_text.rb:302:in `cook' 
/var/www/discourse/lib/email/message_builder.rb:137:in `html_part' 
/var/www/discourse/lib/email/build_email_helper.rb:9:in `block in build_email' 
<internal:kernel>:90:in `tap'
/var/www/discourse/lib/email/build_email_helper.rb:8:in `build_email' 
/var/www/discourse/app/mailers/user_notifications.rb:763:in `send_notification_email' 
/var/www/discourse/app/mailers/user_notifications.rb:555:in `notification_email' 
/var/www/discourse/app/mailers/user_notifications.rb:449:in `mailing_list_notify' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.4.3/lib/abstract_controller/base.rb:215:in `process_action' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.4.3/lib/abstract_controller/callbacks.rb:234:in `block in process_action' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4.3/lib/active_support/callbacks.rb:99:in `run_callbacks' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.4.3/lib/abstract_controller/callbacks.rb:233:in `process_action' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionpack-7.0.4.3/lib/abstract_controller/base.rb:151:in `process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/rescuable.rb:25:in `block in process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/rescuable.rb:17:in `handle_exceptions' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/rescuable.rb:24:in `process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionview-7.0.4.3/lib/action_view/rendering.rb:39:in `process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/base.rb:646:in `block in process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4.3/lib/active_support/notifications.rb:206:in `block in instrument' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4.3/lib/active_support/notifications/instrumenter.rb:24:in `instrument' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activesupport-7.0.4.3/lib/active_support/notifications.rb:206:in `instrument' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/base.rb:645:in `process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/message_delivery.rb:128:in `block in processed_mailer' 
<internal:kernel>:90:in `tap'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/message_delivery.rb:127:in `processed_mailer' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/actionmailer-7.0.4.3/lib/action_mailer/message_delivery.rb:30:in `__getobj__' 
/usr/local/lib/ruby/3.1.0/delegate.rb:84:in `method_missing'
/var/www/discourse/lib/email/sender.rb:51:in `send' 
/var/www/discourse/app/jobs/regular/notify_mailing_list_subscribers.rb:129:in `block (2 levels) in execute' 
/var/www/discourse/app/models/email_log.rb:62:in `block in unique_email_per_post' 
/var/www/discourse/lib/distributed_mutex.rb:53:in `block in synchronize' 
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize' 
/var/www/discourse/lib/distributed_mutex.rb:49:in `synchronize' 
/var/www/discourse/lib/distributed_mutex.rb:34:in `synchronize' 
/var/www/discourse/app/models/email_log.rb:58:in `unique_email_per_post' 
/var/www/discourse/app/jobs/regular/notify_mailing_list_subscribers.rb:128:in `block in execute' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:71:in `each' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:71:in `block in find_each' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:138:in `block in find_in_batches' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:245:in `block in in_batches' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:229:in `loop' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:229:in `in_batches' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:137:in `find_in_batches' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/activerecord-7.0.4.3/lib/active_record/relation/batches.rb:70:in `find_each' 
/var/www/discourse/app/jobs/regular/notify_mailing_list_subscribers.rb:96:in `execute' 
/var/www/discourse/app/jobs/base.rb:249:in `block (2 levels) in perform' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection' 
/var/www/discourse/app/jobs/base.rb:236:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:232:in `each' 
/var/www/discourse/app/jobs/base.rb:232:in `perform' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:202:in `execute_job' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:170:in `block (2 levels) in process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:177:in `block in invoke' 
/var/www/discourse/lib/sidekiq/pausable.rb:134:in `call' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:179:in `block in invoke' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/middleware/chain.rb:182:in `invoke' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:169:in `block in process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/job_retry.rb:113:in `local' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq.rb:44:in `block in <module:Sidekiq>' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:263:in `stats' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/job_logger.rb:13:in `call' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/job_retry.rb:80:in `global' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:124:in `block in dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/job_logger.rb:39:in `prepare' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:123:in `dispatch' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:168:in `process' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:78:in `process_one' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/processor.rb:68:in `run' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/component.rb:8:in `watchdog' 
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/sidekiq-6.5.8/lib/sidekiq/component.rb:17:in `block in safe_thread' 
1 Like

May be related to Support more management to emoji reaction in chat?, perhaps @tgxworld or @davidb have an idea

2 Likes

We can’t seem to find a way to reproduce this and the error doesn’t show up in any of our hosted Discourse.

Any chances you could update to the latest version to ensure all your processes are restarted?

I’m on the latest and have just restarted the server. (Ubuntu update).

I’ll report back.

1 Like

Sidkiq History:

2 Likes