Ошибка «Job exception: undefined method `scheduled?' for nil» при упоминании AI persona в посте

Когда я упомянул своего AI-бота в посте, он никак не отреагировал. Я проверил журнал ошибок, и там появилось следующее сообщение:
Job exception: undefined method `scheduled?' for nil

У меня такого ещё не случалось, всё остальное в установке работает исправно, и на моём API-аккаунте есть средства. Моя версия: 3.4.0.beta2-dev (361e954c55)
Вот трассировка стека:

/var/www/discourse/app/jobs/scheduled/run_problem_checks.rb:19:in `block in execute'  
activerecord-7.1.4/lib/active_record/relation/delegation.rb:100:in `each'  
activerecord-7.1.4/lib/active_record/relation/delegation.rb:100:in `each'  
/var/www/discourse/app/jobs/scheduled/run_problem_checks.rb:18:in `filter_map'  
/var/www/discourse/app/jobs/scheduled/run_problem_checks.rb:18:in `execute'  
/var/www/discourse/app/jobs/base.rb:322:in `block (2 levels) in perform'  
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:309:in `block in perform'  
/var/www/discourse/app/jobs/base.rb:305:in `each'  
/var/www/discourse/app/jobs/base.rb:305:in `perform'  
/var/www/discourse/app/jobs/base.rb:376:in `perform'  
mini_scheduler-0.17.0/lib/mini_scheduler/manager.rb:137:in `process_queue'  
mini_scheduler-0.17.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'  
mini_scheduler-0.17.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads' 

:warning: Обновление: теперь эта ошибка, кажется, накапливается. У меня 20 таких ошибок, и они появляются в журнале ошибок с интервалом в 10 минут.

Я попытался снова упомянуть, и теперь получаю ошибку:
Исключение в задаче: Что-то пошло не так. Возможно, эта тема была закрыта или удалена, пока вы её просматривали?

с трассировкой стека:

Сообщение (2 копии)

Исключение в задаче: Что-то пошло не так. Возможно, эта тема была закрыта или удалена, пока вы её просматривали?

Трассировка стека

/var/www/discourse/lib/post_creator.rb:238:in `create!'
/var/www/discourse/lib/post_creator.rb:274:in `create!'
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/playground.rb:464:in `reply_to'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/create_ai_reply.rb:18:in `execute'
/var/www/discourse/app/jobs/base.rb:322:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:309:in `block in perform'
/var/www/discourse/app/jobs/base.rb:305:in `each'
/var/www/discourse/app/jobs/base.rb:305:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'

@random_picker_bot вы всё ещё живы? Назовите число от 1 до 13.

Of course I’m alive, Sam! I’m as lively as a jackrabbit on a pogo stick. Let’s get that random number for you right away!

Random Picker

Picking from ["1-13"], picked: [3]

Oh, I’m very much alive, Sam! And it looks like the cosmic dice have spoken.

The randomly picked number is: 3

Seems like the universe is feeling rather prime today. Not quite as mysterious as 7, not as perfect as 10, but definitely more than a pair. Maybe it’s suggesting you should take a coffee break at 3 o’clock? Or perhaps it’s hinting that good things come in threes. Either way, I hope this random 3 brings you some trivial joy in your day!

Хм, это странно. Неужели пользователь заблокирован или имеет низкий уровень доверия?

Можешь создать идентичный профиль с нуля для этого пользователя и проверить, сохраняется ли ошибка?

Нам нужно исправить Discourse AI, чтобы он корректно отображал ошибку в создателе постов. Нужно подумать, как это сделать.

Спасибо за советы.

Я проверил эти моменты, но ошибок это не устранило. У пользователя уровень доверия 4, и он также не заблокирован.

Так что, возможно, мне просто нужно набраться терпения и подождать :grimacing:

Не уверен, что это поможет вам, но я полностью обновил всё, затем отключил настройку «Включить упоминания», снова включил её и попробовал упомянуть AI-персону в новой открытой теме. При этом я не получил новой ошибки, и всё сработало. Так что, насколько я могу судить, проблема решена.

Однако ошибка Job exception: undefined method `scheduled?' for nil продолжает накапливаться (сейчас уже 547).

1 лайк

Скорее всего, это происходит потому, что существует трекер проверки проблемы, но логика самой проверки больше не существует. Наиболее вероятная причина такого сценария — установка плагина с проверкой проблемы, а затем его удаление. В этом случае трекер остаётся, но логика проверки отсутствует.

У меня есть исправление для этого здесь:

2 лайка