SSO Quebrado - A URL solicitada ou o recurso não foi encontrado

Eu uso o Memberful como meu SSO e, após uma reconstrução hoje, comecei a receber o erro “O URL ou recurso solicitado não pôde ser encontrado.” ao fazer login no Discourse. Não consigo nem acessar o lado administrativo agora. Consigo fazer login no Memberful com sucesso, apenas não consigo acessar o Discourse. Como posso solucionar o problema a partir daqui? Reconstruí sem plugins, executei o discourse-doctor e não vejo nada de estranho.

Antes de reconstruir, eu estava tendo problemas com novos cadastros de membros que não estavam sendo criados como usuários no Discourse. Eu estava recebendo os seguintes erros no console, mas após a reconstrução, até mesmo usuários existentes não conseguem fazer login. Por favor, ajude!

E esta foi a resposta do Memberful a este problema:

Ele disse que isso parece ser um problema no próprio fórum. Não temos certeza se está relacionado à captura de tela que você nos enviou (a captura de tela original do log de erros), mas quando tentamos sincronizar membros, recebemos um erro interno do servidor:

Oops - Error 500

Oops

The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience.

Detailed information about the error was logged, and an automatic notification generated. We'll take a look at it.

No further action is necessary. However, if the error condition persists, you can provide additional detail, including steps to reproduce the error, by posting a discussion topic in the site's feedback category.

Isso acontece para requisições POST para /admin/users/sync_sso.

Ele sugere entrar em contato com o host ou administrador do seu Discourse para ver se eles podem ajudar a prevenir este erro.

Você já tentou isto para fazer login:

de Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)

Essencialmente, o que está dito acima é que quando você não consegue fazer login como administrador enquanto o SSO está ativado, você tem duas opções:

  • vá para seuforum.com//u/admin-login digite seu administrador e tente fazer login (isso assume que seu servidor/serviço SMTP está em execução).
  • A segunda opção seria usar o console ruby como explicado acima.

Você fez alguma alteração em relação às notificações de tags recentemente?
Se sim, você pode tentar reverter essas configurações no console.

1 curtida

Consegui fazer login no site através do Memberful. Não vejo nenhum problema.

Dado o que sei agora, acho que foi um problema de rede espúrio e/ou do Memberful.

Consegui fazer login para obter acesso de administrador novamente graças a @pfaffman, que me lembrou da rota /u/admin-login, obrigado Jay!

Portanto, a url solicitada... não é mais um problema, mas o outro problema de novos usuários não serem criados ainda existe. Jay, você conseguiu fazer login porque já tinha um login, mas novos usuários não conseguem e recebem o erro de login.

@RGJ Eu fiz alterações nisso recentemente, você realmente acha que isso poderia causar problemas de login? Criei uma tag e a defini como silenciada por padrão, essa foi a única alteração.

Desculpe, isso está um pouco disperso, houve muitos problemas acontecendo esta manhã!

[quote=“David Kingham, post:5, topic:231230, username:davidkingham”]você realmente acha que isso poderia causar problemas de login?
[/quote]

Até uma hora atrás, não. Mas o índice idx_tag_users_ix1 está reclamando. Ele pode estar corrompido, então podemos estar lutando contra os sintomas, mas desabilitar essas notificações pode pelo menos ajudar a tornar seu fórum utilizável novamente, já que elas são definidas na criação do usuário.

[quote=“Jay Pfaffman, post:4, topic:231230, username:pfaffman”]foi um problema espúrio de rede e/ou Memberful
[/quote]
Não com um stack trace e tudo mais.

3 curtidas

Uau. Essa foi uma pegada magistral!

Não tenho certeza em qual tabela isso está, mas

discourse=# reindex table tag_users;

não apresenta erros.

Jay chegou antes de mim, pois estávamos conversando nos bastidores, mas sim, Richard, essa foi a solução! Você, senhor, é brilhante. Removi a tag do mudo padrão, apliquei a todos os usuários e agora funciona novamente. Farei alguns testes para ver se consigo reativar isso para determinar se foi apenas uma corrupção ou algum tipo de bug. Obrigado, obrigado!

Editar: um acompanhamento, estava de fato corrompido, coloquei a notificação de tag de volta no lugar e tudo funciona corretamente.

4 curtidas

Temo que este problema tenha retornado e agora remover a tag que estava causando o problema não está funcionando. Como identifico o ID da tag 842 que vejo nos logs? Obrigado!

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"idx_tag_users_ix1\" DETAIL: Key (user_id, tag_id, notification_level)=(8118, 842, 0) already exists. )

Logs da tentativa de login do usuário
rack-mini-profiler (3.0.0) lib/patches/db/pg.rb:69:in `exec_params'
rack-mini-profiler (3.0.0) lib/patches/db/pg.rb:69:in `exec_params'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
activesupport (7.0.3) lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport (7.0.3) lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract_adapter.rb:765:in `block in log'
activesupport (7.0.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract_adapter.rb:756:in `log'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:766:in `exec_no_cache'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql_adapter.rb:745:in `execute_and_clear'
activerecord (7.0.3) lib/active_record/connection_adapters/postgresql/database_statements.rb:54:in `exec_query'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/database_statements.rb:150:in `exec_insert_all'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `exec_insert_all'
activerecord (7.0.3) lib/active_record/insert_all.rb:41:in `execute'
activerecord (7.0.3) lib/active_record/persistence.rb:213:in `insert_all!'
app/models/user.rb:1734:in `set_default_tags_preferences'
activesupport (7.0.3) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.3) lib/active_support/callbacks.rb:236:in `block in halting_and_conditional'
activesupport (7.0.3) lib/active_support/callbacks.rb:599:in `block in invoke_after'
activesupport (7.0.3) lib/active_support/callbacks.rb:599:in `each'
activesupport (7.0.3) lib/active_support/callbacks.rb:599:in `invoke_after'
activesupport (7.0.3) lib/active_support/callbacks.rb:108:in `run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:929:in `_run_create_callbacks'
activerecord (7.0.3) lib/active_record/callbacks.rb:461:in `_create_record'
activerecord (7.0.3) lib/active_record/timestamp.rb:108:in `_create_record'
activerecord (7.0.3) lib/active_record/persistence.rb:1067:in `create_or_update'
activerecord (7.0.3) lib/active_record/callbacks.rb:457:in `block in create_or_update'
activesupport (7.0.3) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
activerecord (7.0.3) lib/active_record/autosave_association.rb:370:in `around_save_collection_association'
activesupport (7.0.3) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:138:in `run_callbacks'
activerecord (7.0.3) lib/active_record/callbacks.rb:457:in `create_or_update'
activerecord (7.0.3) lib/active_record/timestamp.rb:126:in `create_or_update'
activerecord (7.0.3) lib/active_record/persistence.rb:648:in `save!'
activerecord (7.0.3) lib/active_record/validations.rb:53:in `save!'
activerecord (7.0.3) lib/active_record/transactions.rb:302:in `block in save!'
activerecord (7.0.3) lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport (7.0.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
activerecord (7.0.3) lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
activerecord (7.0.3) lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
activerecord (7.0.3) lib/active_record/transactions.rb:302:in `save!'
activerecord (7.0.3) lib/active_record/suppressor.rb:54:in `save!'
app/models/discourse_connect.rb:260:in `block in match_email_or_create_user'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
app/models/discourse_connect.rb:239:in `match_email_or_create_user'
app/models/discourse_connect.rb:121:in `lookup_or_create_user_unsafe'
app/models/discourse_connect.rb:109:in `block in lookup_or_create_user'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
app/models/discourse_connect.rb:108:in `lookup_or_create_user'
app/controllers/admin/users_controller.rb:460:in `sync_sso'
actionpack (7.0.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.3) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/rendering.rb:53:in `process_action'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.3) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
i18n (1.10.0) lib/i18n.rb:328:in `with_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
activesupport (7.0.3) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.3) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.3) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.3) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.3) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.3) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.3) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.3) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.3) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (7.0.3) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.3) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.3) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
actionpack (7.0.3) lib/action_dispatch/routing/mapper.rb:48:in `serve'
actionpack (7.0.3) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.3) lib/action_dispatch/journey/router

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