Nuevos usuarios no pueden registrarse, errores 404 en la consola

No estoy seguro de si esto es un error o un problema con mi configuración.

Cuando intento crear un nuevo usuario usando el registro con Discourse ID, la parte de verificación de Discourse ID funciona bien, pero al volver a mi instancia en keppari.discourse.diy, el registro falla silenciosamente incluso con un correo electrónico verificado de Discourse ID iniciado sesión en el navegador. El botón de registro está disponible pero no hace nada al hacer clic y no hay ninguna advertencia en la página. Anteriormente pude crear otros usuarios con Discourse ID.

En mi configuración de inicio de sesión y autenticación, mi única configuración anulada es deshabilitar la 2FA y permitir Discourse ID. Estoy autoalojado y no tengo SMTP configurado. Entre la creación de los usuarios anteriores y este intento, deshabilité brevemente los inicios de sesión locales porque pensé que como no tenía SMTP configurado, el formulario de inicio de sesión resultaba confuso, pero ahora he vuelto a habilitar el inicio de sesión local.

No estoy seguro de si está relacionado, pero en la consola para todas las vistas de página de usuarios anónimos, hay un montón de errores 404 para mis complementos, pero también para /assets/vendor.map y assets/start-discourse.map. Un usuario con sesión iniciada no tiene estos errores de consola. No veo nada reciente en mis /logs.

¡Agradecería cualquier orientación sobre otras configuraciones a cambiar si esto es un error de configuración de mi parte! Estoy autoalojado, 2026.3.0-latest

Entonces, ¿el usuario se queda atascado en la pantalla de registro con un botón de registro deshabilitado? ¿Puedes compartir una captura de pantalla? ¿Hay algún error en tus /logs?

1 me gusta

El botón de registro ni siquiera está deshabilitado, está habilitado pero no hace nada al hacer clic. La primera captura de pantalla a continuación es antes de intentar hacer clic en registrarse, pero se ve igual después de hacer clic.

Estos son mis registros ahora; intenté registrarme a las 10:25 en estos registros. Pensé que no había errores en los registros cuando publiqué por primera vez, pero estos errores a partir de las 10:25 son nuevos.

Ahora estoy en el móvil, así que no puedo copiar/pegar registros más antiguos, pero puedo publicar los registros completos más tarde hoy si eso es útil. ¡Gracias!

1 me gusta

Sí, por favor publique el backtrace y el env para el error can’t alloc thread (no se puede asignar hilo), ya que parece estar causando el caos en su instancia.

1 me gusta

Aquí está el backtrace para el error can't alloc thread más reciente:

Message (159137 copies reported)

Job exception: can't alloc thread

Backtrace

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:256:in 'Redis::Commands::Keys#del'
/var/www/discourse/lib/discourse_redis.rb:168:in 'block in DiscourseRedis#del'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:165:in 'DiscourseRedis#del'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:48:in 'MiniScheduler::DistributedMutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:15:in 'MiniScheduler::DistributedMutex.synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:365:in 'MiniScheduler::Manager#lock'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:316:in 'MiniScheduler::Manager#tick'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler.rb:74:in 'block (2 levels) in MiniScheduler.start'

Este es otro

Message (2661 copies reported)

Job exception: can't alloc thread

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'Thread.new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'block in MiniScheduler::Manager::Runner#ensure_worker_threads'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Hola, intenté ver esto desde la perspectiva de un usuario normal, voy a registrarme con la identificación de Discourse y solo se me da la indicación una vez que el campo

está completo, presiono registrarse y el botón se presiona pero no hace lo que debería

Estos son los errores de la consola para un usuario anónimo, en /signup y en todas las demás páginas:

[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-lazy-videos.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (poll.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (vendor.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-local-dates.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (checklist.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (spoiler-alert.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-rewind.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-calendar.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-staff-alias.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-topic-voting.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-narrative-bot.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (automation.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (start-discourse.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-details.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-user-notes.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-data-explorer.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-anonymous-categories.map, línea 0)
[Error] Falló la carga del recurso: el servidor respondió con un estado 404 () (discourse-fingerprint.map, línea 0)

¿Se le notificó mi intento de registro?

Además, ¿quiere que me registre con un no-id para ver si eso funciona?

No, no veo un usuario nuevo ni he recibido ninguna alerta de ningún tipo, gracias por intentarlo.

1 me gusta

No creo que el no-ID funcione ya que no tengo configurado SMTP.

1 me gusta

Hice una reconstrucción por si eso ayudaba en algo y todavía estoy recibiendo los errores de can't alloc thread y problemas de registro.

Si es posible para ti, ¿puedes intentar una nueva instalación de prueba de Discourse en una nueva instancia del mismo tamaño? Si te encuentras con el mismo problema, sabrás que el tamaño es el problema. (Yo puedo hacer lo mismo y probar esto en una instancia de 1GB, pero solo podré probarlo en uno o dos días).

En una instalación completamente nueva en una instancia de 1GB nueva, no tengo errores y puedo iniciar sesión con Discourse ID sin problemas. No empecé a tener problemas con mi instalación principal hasta que deshabilité y luego volví a habilitar el inicio de sesión local, si eso marca alguna diferencia.

Pude reproducirlo desmarcando “habilitar inicios de sesión locales”, lo que provocó que un nuevo usuario no pudiera registrarse y arrojó los mismos errores en la consola del navegador. Obtuve estos errores en los registros en la instalación recién hecha:

No se pudo encontrar MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb): No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
8:00 pm

No se pudo encontrar MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb): No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
8:00 pm

(discourse_id) Fallo en la autenticación! access_denied: OmniAuth::Strategies::OAuth2::CallbackError, access_denied | El propietario del recurso o el servidor de autorización denegaron la solicitud.
8:08 pm

Pero marcar “habilitar inicios de sesión locales” permitió que nuevos usuarios se registraran nuevamente en la instalación recién hecha y detuvo los errores de la consola para usuarios anónimos. No he podido reproducir el error de registro de can't alloc thread.

Con ID habilitado, ¿puedes regenerar las credenciales desde Administrador > Inicio de sesión y autenticación > Discourse ID?

Regeneré las credenciales pero sigo recibiendo errores 404 en la consola del navegador y no puedo registrar nuevos usuarios. No veo nuevos errores en /logs desde que regeneré, pero puedo publicarlos de nuevo si eso ayuda.

Ah, ya veo. Creo que hay una autoconfiguración incorrecta separada aquí.

¿Podrías compartir la lista de configuraciones del sitio relacionadas con el inicio de sesión y sus valores? Obviamente, no las credenciales, pero tengo curiosidad por saber cómo está configurado tu sitio para manejar nuevos registros. (Si prefieres enviarlo por mensaje privado, no dudes en hacerlo).

En Admin > Inicio de sesión y autenticación, los únicos cambios que tengo respecto a la configuración predeterminada son:

  • deshabilitar “Forzar segundo factor en autenticación externa”
  • habilitar Discourse ID

Brevemente deshabilité los inicios de sesión locales, pero los he vuelto a habilitar ahora.

Empecé a desactivar complementos para ver si eso estaba afectando algo, y creo que pudo haber sido Fingerprint. Necesito probar a crear una cuenta con solo ese desactivado, pero terminé desactivando todos mis complementos, intentando crear un nuevo usuario después de cada uno, y pude crear una nueva cuenta después de desactivar Fingerprint.

1 me gusta

Ah, gracias por el seguimiento. ¿Tienes un enlace a este complemento? ¡Sería útil!

1 me gusta