新用户无法注册,控制台出现 404 错误

我不确定这是一个错误还是我的配置问题。

当我尝试使用 Discourse ID 注册创建新用户时,Discourse ID 验证部分运行正常,但在返回到我的实例 keppari.discourse.diy 时,即使浏览器中已登录一个已验证的 Discourse ID 电子邮件,注册也会静默失败。注册按钮可用,但点击后没有任何反应,页面上也没有任何警告。我之前能够使用 Discourse ID 创建其他用户。

在我的登录和身份验证设置中,我唯一覆盖的设置是禁用双因素认证(2FA)并允许 Discourse ID。我是自托管的,没有配置 SMTP。在创建之前的用户和这次尝试之间,我曾短暂禁用过本地登录,因为我认为既然没有配置 SMTP,登录表单会让人困惑,但现在我已经重新启用了本地登录。

我不确定这是否相关,但在所有匿名用户页面浏览的控制台中,我的插件出现了一堆 404 错误,/assets/vendor.map/assets/start-discourse.map 也出现了错误。已登录的用户没有这些控制台错误。我在 /logs 中没有看到任何最近的记录。

如果这是我的配置错误,我很感谢您能就应更改的其他设置提供指导!我是自托管的,版本是 2026.3.0-latest。

所以,用户卡在了注册界面,注册按钮是禁用的?您能分享一张截图吗?您的 /logs 中有任何错误吗?

1 个赞

注册按钮甚至没有被禁用,它是启用的,但点击时没有任何反应。下面的第一张截图是在尝试点击注册之前,但点击后看起来是一样的。

这些是我现在的日志;我在 10:25 尝试注册,记录在这些日志中。我最初发布时以为日志中没有错误,但 10:25 之后的这些错误是新的。

我现在在手机上,所以无法复制/粘贴更早的日志,但我今天晚些时候可以发布完整的日志,如果那有帮助的话。谢谢!

1 个赞

是的,请发布导致您的实例出现混乱的“无法分配线程”错误的调用堆栈和环境信息。

1 个赞

这是最近一次 can't alloc thread 错误的调用堆栈跟踪:

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'

这是另一个

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'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

嘿,我尝试从普通用户的角度来看待这个问题,当我使用 Discourse ID 注册时,在填写完字段后,我只收到了提示

我点击“注册”按钮,按钮被按下但没有执行应有的操作

这些是匿名用户在 /signup 和所有其他页面上的控制台错误:

[错误] 资源加载失败:服务器响应状态为 404 () (discourse-lazy-videos.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (poll.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (vendor.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-local-dates.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (checklist.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (spoiler-alert.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-rewind.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-calendar.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-staff-alias.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-topic-voting.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-narrative-bot.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (automation.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (start-discourse.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-details.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-user-notes.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-data-explorer.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-anonymous-categories.map, 第 0 行)
[错误] 资源加载失败:服务器响应状态为 404 () (discourse-fingerprint.map, 第 0 行)

您是否收到了我注册尝试的通知?

另外,您希望我使用非 ID 进行注册,看看是否有效?

不,我没有看到新用户,也没有收到任何警报,感谢您的尝试。

1 个赞

我不认为非 ID 会起作用,因为我没有配置 SMTP。

1 个赞