I nuovi utenti non possono registrarsi, errori 404 nella console

Non sono sicuro se questo sia un bug o un problema con la mia configurazione.

Quando provo a creare un nuovo utente utilizzando la registrazione con ID Discourse, la parte di verifica dell’ID Discourse funziona correttamente, ma tornando alla mia istanza su keppari.discourse.diy, la registrazione fallisce silenziosamente anche con un’email verificata tramite ID Discourse connessa nel browser. Il pulsante di registrazione è disponibile ma non fa nulla quando viene cliccato e non c’è alcun avviso sulla pagina. In precedenza sono stato in grado di creare altri utenti con ID Discourse.

Nelle mie impostazioni di accesso e autenticazione, l’unica impostazione che ho sovrascritto è la disabilitazione dell’autenticazione a due fattori (2FA) e l’abilitazione dell’ID Discourse. Sono self-hosted e non ho configurato SMTP. Tra la creazione degli utenti precedenti e questo tentativo, ho brevemente disabilitato gli accessi locali perché pensavo che, non avendo configurato SMTP, il modulo di accesso risultasse confuso, ma ora ho riabilitato l’accesso locale.

Non sono sicuro se sia correlato, ma nella console per tutte le visualizzazioni di pagina degli utenti anonimi, ci sono molti errori 404 per i miei plugin, ma anche per /assets/vendor.map e assets/start-discourse.map. Un utente connesso non presenta questi errori nella console. Non vedo nulla di recente nei miei /logs.

Apprezzerei qualsiasi indicazione su altre impostazioni da modificare se si tratta di un errore di configurazione da parte mia! Sono self-hosted, 2026.3.0-latest

Quindi, l’utente è bloccato sulla schermata di registrazione con un pulsante di registrazione disabilitato? Puoi condividere uno screenshot? Ci sono errori nei tuoi /logs?

1 Mi Piace

Il pulsante di iscrizione non è nemmeno disabilitato, è abilitato ma non fa nulla quando viene cliccato. Il primo screenshot qui sotto è di prima di provare a cliccare su iscriviti, ma appare lo stesso dopo aver cliccato.

Questi sono i miei log in questo momento; ho tentato un’iscrizione alle 10:25 in questi log. Avevo pensato che non ci fossero errori nei log quando ho pubblicato per la prima volta, ma questi errori delle 10:25 sono nuovi.

Al momento sono su dispositivi mobili, quindi non posso copiare/incollare log più vecchi, ma posso pubblicare i log completi più tardi oggi se è utile. Grazie!

1 Mi Piace

Sì, per favore pubblica il backtrace e l’ambiente per l’errore can’t alloc thread (impossibile allocare thread), che sembra stia causando il caos sulla tua istanza.

1 Mi Piace

Ecco il backtrace per l’errore can't alloc thread più recente:

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'

Questo è un altro

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'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Ehi, ho provato a visualizzare questo dal punto di vista di un utente normale, vado su iscriviti con l’ID di Discourse e mi viene mostrata solo la richiesta una volta compilato il campo

premo iscriviti e il pulsante viene premuto ma non fa quello che dovrebbe

Questi sono gli errori della console per un utente anonimo, su /signup e tutte le altre pagine:

[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-lazy-videos.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (poll.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (vendor.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-local-dates.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (checklist.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (spoiler-alert.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-rewind.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-calendar.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-staff-alias.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-topic-voting.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-narrative-bot.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (automation.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (start-discourse.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-details.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-user-notes.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-data-explorer.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-anonymous-categories.map, riga 0)
[Error] Impossibile caricare la risorsa: il server ha risposto con uno stato 404 () (discourse-fingerprint.map, riga 0)

Sei stato avvisato del mio tentativo di iscrizione?

Inoltre, vuoi che mi iscriva con un ID non valido per vedere se funziona?

No, non vedo un nuovo utente e non ho ricevuto alcun avviso di alcun tipo, grazie per averci provato.

1 Mi Piace

Non credo che il non-ID funzionerà poiché non ho configurato SMTP.

1 Mi Piace

Ho eseguito una ricompilazione nel caso in cui potesse aiutare, ma continuo a ricevere gli errori can't alloc thread e problemi di registrazione.

Se ti è possibile, puoi provare una nuova installazione di prova di Discourse su un nuovo droplet della stessa dimensione? Se riscontri lo stesso problema, saprai che è la dimensione il problema. (Posso fare lo stesso e testarlo su un droplet da 1 GB, ma potrò farlo solo tra un giorno o due.)

Su una nuova installazione su un nuovo droplet da 1 GB, non ho errori e riesco ad accedere con l’ID di Discourse senza problemi. Ho iniziato ad avere problemi con la mia installazione principale solo dopo aver disabilitato e poi riabilitato l’accesso locale, se questo fa qualche differenza.

Sono riuscito a riprodurre il problema deselezionando “abilita accessi locali”, il che ha impedito la registrazione di nuovi utenti e ha generato gli stessi errori nella console del browser. Ho ottenuto questi errori nei log sulla nuova installazione:

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non trovato: Nessun file o directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
8:00 pm

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non trovato: Nessun file o directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
8:00 pm

(discourse_id) Errore di autenticazione! access_denied: OmniAuth::Strategies::OAuth2::CallbackError, access_denied | Il proprietario della risorsa o il server di autorizzazione hanno negato la richiesta.
8:08 pm

Ma selezionando “abilita accessi locali” ho permesso di nuovo la registrazione di nuovi utenti sulla nuova installazione e ho interrotto gli errori della console per gli utenti anonimi. Non sono riuscito a riprodurre l’errore di log can't alloc thread.

Con ID abilitato, è possibile rigenerare le credenziali da Admin > Login & Authentication > Discourse ID?

Ho rigenerato le credenziali ma continuo a ricevere errori 404 nella console del browser e non riesco a registrare nuovi utenti. Non vedo nuovi errori in /logs da quando ho rigenerato, ma posso postarli di nuovo se può essere d’aiuto.

Oh, capisco. Penso che ci sia una configurazione errata separata qui.

Puoi condividere l’elenco delle impostazioni del sito relative all’accesso e i loro valori? Ovviamente non le credenziali, ma sono curioso di sapere come è impostato il tuo sito per gestire le nuove registrazioni. (Se preferisci inviarle tramite messaggio privato, sentiti libero di farlo.)

In Amministrazione > Accesso e autenticazione, le uniche modifiche che ho rispetto alle impostazioni predefinite sono:

  • disabilitato “Applica secondo fattore per l’autenticazione esterna”
  • abilitato Discourse ID

Ho disabilitato brevemente gli accessi locali, ma ora li ho riabilitati.

Ho iniziato a disattivare i plugin per vedere se stessero causando problemi, e penso che possa essere stato Fingerprint. Devo testare la creazione di un account con solo quello disabilitato, ma ho finito per disattivare tutti i miei plugin, tentando di creare un nuovo utente dopo ciascuno, e sono riuscito a creare un nuovo account dopo aver disattivato Fingerprint.

1 Mi Piace

Ah, grazie per il follow-up. Hai un link a questo plugin? Sarebbe utile!

1 Mi Piace