O plugin de automação do Discourse apresenta falha com erro interno do servidor

Antes da última atualização, havia uma automação usando o Plugin de Automação que faz o seguinte (que foi testado e funcionou com sucesso sem nenhuma alteração):

  • Script: Enviar pms
  • Quando: “Usuário adicionado ao grupo”
  • Grupo rastreado: “um grupo que requer que o proprietário do grupo ‘aprove os pedidos’ primeiro”
  • Opções de Script: um PM (testado e funcionou com sucesso).

Atualmente, na versão: 3.5.0.beta3-dev(231e9ca99a), agora aparece “erro interno do servidor” ao tentar aprovar os usuários.

O seguinte é o erro que aparece:

PG::NotNullViolation (ERROR:  null value in column "total_time" of relation "discourse_automation_stats" violates not-null constraint
DETAIL:  Failing row contains (18, 8, 2025-04-10, 2025-04-10 07:34:42.740189, null, null, null, null, 1).
)
lib/mini_sql_multisite_connection.rb:109:in `run'
lib/plugin/instance.rb:609:in `block in on'
lib/discourse_event.rb:12:in `block in trigger'
lib/discourse_event.rb:12:in `trigger'
app/models/group.rb:869:in `trigger_user_added_event'
app/models/group.rb:838:in `add'
app/controllers/groups_controller.rb:502:in `block in handle_membership_request'
app/controllers/groups_controller.rb:500:in `handle_membership_request'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'

Suspeito que isso tenha a ver com as novas alterações na tabela discourse_automation_stats mencionadas aqui:

Obrigado!

1 curtida

Obrigado pelo relatório. Acho que você tem outro erro, mas o código de status que adicionamos está ocultando-o.

Isso deve corrigir:

E então poderemos ver o erro real.

2 curtidas

Obrigado!

Isso significa que, após a atualização, preciso obter o erro real?

1 curtida

Sim, por favor, embora eu suspeite que de aqui, você talvez consiga consertá-lo sozinho.

2 curtidas

Obrigado pela sua paciência!

Estou tendo outro problema genérico {"status":422,"error":"Unprocessable Entity"}. Por favor, veja a captura de tela depois que eu clico em ‘aprovar’:

A carga útil é dados do formulário (application/x-www-form-urlencoded; charset=UTF-8):
user_id=10127&accept=true

Obrigado! Embora eu não tenha certeza por que está dizendo ‘entidade não processável’, alguma dica?

Desculpe, mas isso não parece automação.

Você pode clicar em resposta na primeira captura de tela, por favor?

Olá
Obrigado! É a mesma resposta…

Fiz mais investigações e percebi que…

Duas coisas já mudaram:

  1. O usuário está sendo adicionado ao grupo com sucesso
  2. A mensagem automatizada está sendo enviada
  3. Este erro “Unprocessable entity” não aparece quando a conta de administrador é usada para aceitar a solicitação de grupo, mas está aparecendo para um usuário proprietário de grupo não administrador (mesmo com 1 e 2 acontecendo com sucesso agora para administrador/não administrador).

Parece que agora estamos falando de um novo problema (dado que os acima já estão funcionando, mas apenas o resultado não é claro quando está bloqueado com este novo problema)…

até os logs de erro do servidor mudaram:

info log
ActiveRecord::RecordNotSaved (Algo deu errado. Talvez este tópico tenha sido fechado ou excluído enquanto você o estava vendo?)
lib/post_creator.rb:238:in `create!'
app/controllers/groups_controller.rb:523:in `handle_membership_request'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:385:in `call'
backtrace log
lib/post_creator.rb:238:in `create!'
app/controllers/groups_controller.rb:523:in `handle_membership_request'
actionpack (7.2.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
app/controllers/application_controller.rb:427:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:427:in `with_resolved_locale'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:130:in `block in run_callbacks'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:141:in `run_callbacks'
actionpack (7.2.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:77:in `block in process_action'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (7.2.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (7.2.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (7.2.2.1) lib/action_controller/metal/instrumentation.rb:76:in `process_action'
actionpack (7.2.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.2.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (7.2.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (7.2.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (3.3.1) lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack (7.2.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (7.2.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (7.2.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (7.2.2.1) lib/action_dispatch/routing/route_set.rb:896:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
rack (2.2.13) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.13) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.13) lib/rack/head.rb:12:in `call'
actionpack (7.2.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:410:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:26:in `call'
rack (2.2.13) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.13) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (7.2.2.1) lib/active_support/callbacks.rb:101:in `run_callbacks'
actionpack (7.2.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
railties (7.2.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (7.2.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/request_id.rb:33:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.13) lib/rack/method_override.rb:24:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'
rack (2.2.13) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (3.3.1) lib/mini_profiler.rb:191:in `call'
lib/middleware/processing_request.rb:12:in `call'
message_bus (4.4.1) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:385:in `call'
actionpack (7.2.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
railties (7.2.2.1) lib/rails/engine.rb:535:in `call'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `public_send'
railties (7.2.2.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.13) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.13) lib/rack/urlmap.rb:58:in `each'
rack (2.2.13) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
env log
hostname community-app
process_id 913
application_version 6fc5ce968892b980c3db6b19b49683fb38a59e29
HTTP_HOST meta.discourse.org
REQUEST_URI /groups/200/handle_membership_request.json
REQUEST_METHOD PUT
HTTP_USER_AGENT Mozilla/5.0
HTTP_ACCEPT /
HTTP_REFERER https://meta.discourse.org/g/group_name/requests
HTTP_X_FORWARDED_FOR 0.0.0.0
HTTP_X_REAL_IP 0.0.0.0
username copuxtest
time 7:37 am
params
user_id 5836
accept true

Desculpe, mas estou muito confuso sobre como isso se relaciona com o op. Você não recebe esse erro por meio de automação, certo? Esta é uma ação direta que você está realizando no admin, pelo que posso dizer.

1 curtida

Olá novamente!
Obrigado por dedicar seu tempo a isso, então acho que agora está resolvido. Inicialmente, o erro só apareceu depois que ativamos a automação (primeiro erro postado na primeira postagem) e, em seguida, após sua correção, o erro desapareceu, mas os logs mostraram um erro diferente, como explicado acima.

Os erros desapareceram depois que fiz o seguinte:

  1. Desliguei a automação
  2. Limpei o cache do navegador
  3. Liguei a automação novamente

Depois de ligar/desligar a automação e limpar o cache, todos os erros desapareceram. Obrigado!

Ok, muito surpreendente, mas se funciona para você, tudo bem! Obrigado pela atualização.

1 curtida

Obrigado! :sorrindo:

Este tópico foi fechado automaticamente 3 dias após a última resposta. Novas respostas não são mais permitidas.