Les nouveaux utilisateurs ne peuvent pas s'inscrire, erreurs 404 dans la console

Je ne suis pas sûr s’il s’agit d’un bogue ou d’un problème avec ma configuration.

Lorsque j’essaie de créer un nouvel utilisateur en utilisant l’inscription avec l’ID Discourse, la partie de vérification de l’ID Discourse fonctionne bien, mais au retour sur mon instance à keppari.discourse.diy, l’inscription échoue silencieusement même avec un e-mail vérifié par l’ID Discourse connecté dans le navigateur. Le bouton d’inscription est disponible mais ne fait rien lorsqu’on clique dessus et il n’y a aucun avertissement sur la page. J’ai pu créer d’autres utilisateurs avec l’ID Discourse auparavant.

Dans mes paramètres de connexion et d’authentification, mon seul paramètre modifié est la désactivation de la 2FA et l’autorisation de l’ID Discourse. Je suis auto-hébergé et je n’ai pas de SMTP configuré. Entre la création des utilisateurs précédents et cette tentative, j’ai brièvement désactivé les connexions locales car je pensais que, n’ayant pas de SMTP configuré, cela rendait le formulaire de connexion confus, mais j’ai maintenant réactivé la connexion locale.

Je ne sais pas si cela est lié, mais dans la console pour toutes les vues de page des utilisateurs anonymes, il y a un tas d’erreurs 404 pour mes plugins, mais aussi pour /assets/vendor.map et assets/start-discourse.map. Un utilisateur connecté n’a pas ces erreurs de console. Je ne vois rien de récent dans mes /logs.

J’apprécierais tout conseil sur d’autres paramètres à modifier s’il s’agit d’une erreur de configuration de ma part ! Je suis auto-hébergé, 2026.3.0-latest.

Donc, l’utilisateur est bloqué sur l’écran d’inscription avec un bouton d’inscription désactivé ? Pouvez-vous partager une capture d’écran ? Y a-t-il des erreurs dans vos /logs ?

1 « J'aime »

Le bouton d’inscription n’est même pas désactivé, il est activé mais ne fait rien lorsqu’on clique dessus. La première capture d’écran ci-dessous est avant d’essayer de cliquer sur s’inscrire, mais elle a le même aspect après avoir cliqué.

Voici mes journaux pour le moment ; j’ai tenté une inscription à 10h25 dans ces journaux. Je pensais qu’il n’y avait pas d’erreurs dans les journaux lorsque j’ai posté pour la première fois, mais ces erreurs à partir de 10h25 sont nouvelles.

Je suis sur mobile en ce moment, donc je ne peux pas copier/coller les journaux plus anciens, mais je peux publier les journaux complets plus tard dans la journée si cela est utile. Merci !

1 « J'aime »

Oui, veuillez publier la trace de la pile et l’environnement pour l’erreur « impossible d’allouer un thread », qui semble être à l’origine du chaos sur votre instance.

1 « J'aime »

Voici la trace de la pile pour l’erreur can't alloc thread la plus récente :

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'

Ceci est un autre

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'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

Hé, j’ai essayé de voir cela du point de vue d’un utilisateur normal, je vais m’inscrire avec l’ID Discourse et on me donne seulement l’invite une fois que le champ

est rempli, j’appuie sur s’inscrire et le bouton s’enfonce mais ne fait pas ce qu’il devrait

Voici les erreurs de console pour un utilisateur anonyme, sur /signup et toutes les autres pages :

[Error] Failed to load resource: the server responded with a status of 404 () (discourse-lazy-videos.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (poll.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (vendor.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-local-dates.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (checklist.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (spoiler-alert.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-rewind.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-calendar.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-staff-alias.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-topic-voting.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-narrative-bot.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (automation.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (start-discourse.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-details.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-user-notes.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-data-explorer.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-anonymous-categories.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 () (discourse-fingerprint.map, line 0)

Avez-vous été alerté de ma tentative d’inscription ?

Aussi, voulez-vous que je m’inscrive avec un non-identifiant pour voir si cela fonctionne ?

Non, je ne vois pas de nouvel utilisateur et je n’ai reçu aucune alerte d’aucune sorte, merci d’avoir essayé.

1 « J'aime »

Je ne pense pas que le non-ID fonctionnera car je n’ai pas de SMTP configuré.

1 « J'aime »

J’ai effectué une reconstruction au cas où cela aiderait, et je reçois toujours les erreurs can't alloc thread et des problèmes d’inscription.

Si c’est possible pour vous, pouvez-vous essayer une nouvelle installation de test de Discourse sur une nouvelle instance de la même taille ? Si vous rencontrez le même problème, vous saurez que c’est la taille qui pose problème. (Je peux faire de même et tester cela sur une instance de 1 Go, mais je ne pourrai le faire que dans un jour ou deux.)

Sur une installation toute neuve sur une nouvelle gouttelette de 1 Go, je n’ai aucune erreur et je peux me connecter avec Discourse ID sans problème. Je n’ai commencé à avoir des problèmes avec mon installation principale qu’après avoir désactivé puis réactivé la connexion locale, si cela fait une différence.

J’ai pu reproduire le problème en décochant « activer les connexions locales », ce qui a empêché un nouvel utilisateur de s’inscrire et a provoqué les mêmes erreurs dans la console du navigateur. J’ai obtenu ces erreurs dans les journaux sur l’installation fraîche :

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) introuvable : No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
20h00

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) introuvable : No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
20h00

(discourse_id) Échec de l'authentification ! access_denied: OmniAuth::Strategies::OAuth2::CallbackError, access_denied | Le propriétaire de la ressource ou le serveur d'autorisation a refusé la requête.
20h08

Mais cocher « activer les connexions locales » a de nouveau permis aux nouveaux utilisateurs de s’inscrire sur l’installation fraîche et a arrêté les erreurs de la console pour les utilisateurs anonymes. Je n’ai pas réussi à reproduire l’erreur de journalisation can't alloc thread.

Avec l’ID activé, pouvez-vous régénérer les informations d’identification depuis Admin > Login & Authentication > Discourse ID ?

J’ai régénéré les identifiants mais je reçois toujours des erreurs 404 dans la console du navigateur et je ne peux pas inscrire de nouveaux utilisateurs. Je ne vois aucune nouvelle erreur dans /logs depuis la régénération, mais je peux les publier à nouveau si cela peut aider.

Oh, je vois. Je pense qu’il y a un autre problème de configuration ici.

Pouvez-vous partager la liste des paramètres du site liés à la connexion et leurs valeurs ? Pas les informations d’identification évidemment, mais je suis curieux de savoir comment votre site est configuré pour gérer les nouvelles inscriptions. (Si vous préférez l’envoyer par message privé, n’hésitez pas à le faire.)

Dans Admin > Connexion et authentification, les seuls changements que j’ai par rapport aux paramètres par défaut sont :

  • désactiver “Imposer un deuxième facteur sur l’authentification externe”
  • activer l’ID Discourse

J’ai brièvement désactivé les connexions locales, mais je les ai réactivées maintenant.

J’ai commencé à désactiver les plugins pour voir si cela affectait quelque chose, et je pense que c’était peut-être Fingerprint. Je dois tester la création d’un compte avec uniquement celui-ci désactivé, mais j’ai fini par désactiver tous mes plugins, en essayant de créer un nouvel utilisateur après chacun, et j’ai pu créer un nouveau compte après avoir désactivé Fingerprint.

1 « J'aime »

Ah, merci de votre suivi. Avez-vous un lien vers ce plugin ? Cela serait utile !

1 « J'aime »