Skip to content

Deleting spam users silently fails #70

@jericson

Description

@jericson

I tried to delete a user because they had posted spam on my site, but it silently failed. Looking in the logs, I found this error:

[default] Failed to process hijacked response correctly : NoMethodError : undefined method `rating_types' for nil

Here is the backtrace:

/var/www/discourse/plugins/discourse-ratings/plugin.rb:147:in `block (2 levels) in activate!' 
/var/www/discourse/lib/plugin/instance.rb:375:in `public_send' 
/var/www/discourse/lib/plugin/instance.rb:375:in `block (2 levels) in add_to_class' 
/var/www/discourse/plugins/discourse-ratings/plugin.rb:61:in `block in activate!' 
/var/www/discourse/lib/plugin/instance.rb:575:in `block in on' 
/var/www/discourse/lib/discourse_event.rb:12:in `block in trigger' 
/usr/local/lib/ruby/3.3.0/set.rb:501:in `each_key'
/usr/local/lib/ruby/3.3.0/set.rb:501:in `each'
/var/www/discourse/lib/discourse_event.rb:12:in `trigger' 
/var/www/discourse/lib/post_destroyer.rb:86:in `destroy' 
/var/www/discourse/app/services/user_destroyer.rb:155:in `block in delete_posts' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:82:in `each' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:82:in `block in find_each' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:158:in `block in find_in_batches' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:396:in `block in batch_on_unloaded_relation' 
<internal:kernel>:187:in `loop'
activerecord-7.1.4/lib/active_record/relation/batches.rb:372:in `batch_on_unloaded_relation' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:269:in `in_batches' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:157:in `find_in_batches' 
activerecord-7.1.4/lib/active_record/relation/batches.rb:81:in `find_each' 
/var/www/discourse/app/services/user_destroyer.rb:151:in `delete_posts' 
/var/www/discourse/app/services/user_destroyer.rb:43:in `block in destroy' 
/var/www/discourse/app/services/user_destroyer.rb:179:in `block in optional_transaction' 
activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:535:in `block in within_new_transaction' 
activesupport-7.1.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize' 
activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction' 
activerecord-7.1.4/lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction' 
activerecord-7.1.4/lib/active_record/transactions.rb:212:in `transaction' 
/var/www/discourse/app/services/user_destroyer.rb:179:in `optional_transaction' 
/var/www/discourse/app/services/user_destroyer.rb:28:in `destroy' 
/var/www/discourse/app/controllers/admin/users_controller.rb:403:in `block in destroy' 
/var/www/discourse/lib/hijack.rb:64:in `instance_eval' 
/var/www/discourse/lib/hijack.rb:64:in `block in hijack' 
concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/promises.rb:911:in `callback_on_resolution' 
concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/promises.rb:797:in `call_callback' 
concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/promises.rb:803:in `call_callbacks' 
concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/promises.rb:692:in `resolve_with' 
concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/promises.rb:1325:in `resolve' 
/var/www/discourse/lib/scheduler/defer.rb:115:in `block in do_work' 
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:207:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:109:in `do_work' 
/var/www/discourse/lib/scheduler/defer.rb:97:in `block (2 levels) in start_thread' 

I believe this is the same error as reported on Meta Discourse. I didn't have the Ratings plugin enabled, so I removed it from my container configuration file, rebuilt and I was able to delete the user.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions