Faraday: erro de solicitação incorreta ao postar

Se um usuário postar em um tópico onde o último escritor é outro usuário, ocorrerá um erro 500. Mas esse comentário é publicado de qualquer forma.

Porém, se um usuário escrever uma postagem e o mesmo usuário já foi o último escritor naquele tópico, não há erro.

Eu, como administrador, não consigo desbloquear tópicos. Portanto, pode haver outras falhas também.

Tudo o que sei:

  • O modo de segurança (safe-mode) não ajuda
  • Comentar MaxMind em app.yml não ajuda
  • O Ubuntu está atualizado e foi reiniciado
  • O Discourse foi reconstruído via shell ontem e hoje duas vezes
  • Isso não acontece aqui, obviamente
  • Instalação padrão, nada especial
  • Acontece com todo mundo - bem, pelo menos com celulares, não sei sobre desktops, mas como é um erro 500, não vejo como um dispositivo poderia estar envolvido
  • Erro:
backtrace
Message (20 copies reported)

Faraday::BadRequestError (o servidor respondeu com status 400)
lib/discourse_event.rb:12:in `block in trigger'
lib/discourse_event.rb:12:in `trigger'
lib/post_creator.rb:258:in `trigger_after_events'
lib/post_creator.rb:220:in `create'
lib/new_post_manager.rb:318:in `perform_create_post'
lib/new_post_manager.rb:252:in `perform'
app/controllers/posts_controller.rb:201:in `create'
app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
app/controllers/application_controller.rb:423:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14: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/request_tracker.rb:277:in `call'

Backtrace

faraday (2.9.0) lib/faraday/response/raise_error.rb:16:in `on_complete'
faraday (2.9.0) lib/faraday/middleware.rb:18:in `block in call'
faraday (2.9.0) lib/faraday/response.rb:42:in `on_complete'
faraday (2.9.0) lib/faraday/middleware.rb:17:in `call'
faraday (2.9.0) lib/faraday/rack_builder.rb:152:in `build_response'
faraday (2.9.0) lib/faraday/connection.rb:444:in `run_request'
faraday (2.9.0) lib/faraday/connection.rb:280:in `post'
ruby-openai (7.0.0) lib/openai/http.rb:22:in `json_post'
ruby-openai (7.0.0) lib/openai/client.rb:30:in `chat'
plugins/discourse-ai-topic-summary/lib/ai_topic_summary/call_bot.rb:15:in `get_response'
plugins/discourse-ai-topic-summary/lib/ai_topic_summary/summarise.rb:6:in `retrieve_summary'
plugins/discourse-ai-topic-summary/plugin.rb:62:in `block (2 levels) in activate!'
lib/discourse_event.rb:12:in `block in trigger'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each_key'
/usr/local/lib/ruby/3.2.0/set.rb:511:in `each'
lib/discourse_event.rb:12:in `trigger'
lib/post_creator.rb:258:in `trigger_after_events'
lib/post_creator.rb:220:in `create'
lib/new_post_manager.rb:318:in `perform_create_post'
lib/new_post_manager.rb:252:in `perform'
app/controllers/posts_controller.rb:201:in `create'
actionpack (7.0.8.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.8.1) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.8.1) lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack (7.0.8.1) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.8.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
plugins/discourse-staff-alias/plugin.rb:129:in `block (4 levels) in activate!'
activesupport (7.0.8.1) lib/active_support/callbacks.rb:127:in `instance_exec'
activesupport (7.0.8.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n (1.14.5) lib/i18n.rb:351:in `with_locale'
app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport (7.0.8.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.8.1) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.8.1) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.8.1) lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack (7.0.8.1) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.8.1) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.8.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.8.1) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.8.1) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.8.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.8.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.8.1) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.8.1) lib/action_view/rendering.rb:39:in `process'
actionpack (7.0.8.1) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.8.1) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.8.1) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.8.1) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.8.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.8.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.8.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.8.1) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.9) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.9) lib/rack/head.rb:12:in `call'
actionpack (7.0.8.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:393:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.9) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.8.1) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.8.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster (2.19.1) lib/logster/middleware/reporter.rb:40:in `call'
railties (7.0.8.1) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.8.1) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
request_store (1.7.0) lib/request_store/middleware.rb:19:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
rack (2.2.9) lib/rack/method_override.rb:24:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.9) lib/rack/sendfile.rb:110:in `call'
actionpack (7.0.8.1) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
message_bus (4.3.8) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:277:in `call'
railties (7.0.8.1) lib/rails/engine.rb:530:in `call'
railties (7.0.8.1) lib/rails/railtie.rb:226:in `public_send'
railties (7.0.8.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.9) lib/rack/urlmap.rb:58:in `each'
rack (2.2.9) 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.2.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Env

HTTP HOSTS: foorumi.katiska.eu

Ideias do que devo fazer a seguir?

Pode ser culpa minha?

Tente desativar o Resumo de Tópicos por IA.

Provavelmente há algo errado com sua solicitação à OpenAI (daí o 400).

Eu realmente deveria mover essa solicitação para um job que seja iniciado em uma thread independente.

Ainda não tive tempo (trabalho, trabalho, trabalho) para fazer isso, mas vou resolver.

Enquanto isso, verifique seu modelo e conta.

Sim, você estava certo.

Eu nunca me lembro que o modo de segurança não desliga todos os plugins. Nós, administradores próximos ao usuário final, realmente precisamos de alguma marcação para saber quando o modo de segurança faz a mágica e quando não.

(Por favor, por favor, por favor, corrija isso quando tiver tempo; eu realmente gosto desse resumo).

1 curtida

Observe que a correção será para causar menos interrupções quando ocorrer uma falha.

Isso não corrigirá seu erro 400 - talvez você precise descobrir o que está causando isso e me informar se for outro bug.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.