136 / 137 пользователей ожидают одобрения

Неважно, сколько пользователей находится в очереди на проверку, если в очереди есть хотя бы один пользователь, я всегда получаю сообщение (да, всегда), в котором указано, что в очереди находится либо 136, либо 137 пользователей. Каждый. Раз. Без. Исключения.

Как это исправить?

Я тоже получаю эти сообщения. Когда я включил одобрение, не все существующие пользователи были автоматически одобрены. ("must approve users" notifications are incorrectly triggered by old users - #4 by Moin). Поэтому я мог найти их через Data Explorer и одобрить вручную на странице администратора их профиля. (Но 136 человек — это слишком много для ручного одобрения!)

Также есть эти сообщения об ошибках:

Спасибо за эти подсказки, @Moin.

С помощью этого

SELECT "users".* FROM "users" 
WHERE (suspended_till IS NULL OR suspended_till <= '2023-11-13 11:05:23.225614') 
AND "users"."approved" = FALSE 
AND "users"."active" = TRUE 
ORDER BY users.created_at DESC,users.username

я получаю 135 записей.

Выбрав случайным образом одного из самых старых пользователей — samirbehara, — я перехожу к этому пользователю, у которого есть публичная активность.

На административной стороне его аккаунта у меня есть опция «Одобрить», но я не понимаю, почему.

Как я только что сообщил моему дорогому коллеге @ganncamp в Slack, я отключил эти уведомления на нашем экземпляре сегодня утром.

Они действительно не были нам нужны.

И всё же странно, что нам показали так много (более 130), когда очередь на проверку явно не достигала такого количества.

Я не уделял здесь особого внимания, поэтому могу ошибаться.

Думаю, они уже зарегистрировались, а позже вы включили настройку «Требуется одобрение пользователей». Они уже были зарегистрированы и могли публиковать сообщения, но затем вы потребовали одобрения, которого ещё не дали. На мой взгляд, у вас есть два варианта: одобрить или удалить все 135 аккаунтов — либо через интерфейс пользователя, либо через Rails.

Разве это не приведёт к массовому одобрению существующих пользователей?

Обычно да. Однако есть ошибка, поэтому у некоторых пользователей это не работает.

Это кажется немного странным, поскольку (если я правильно понимаю SQL) у нас в качестве целевых типов фигурирует, среди прочего, User?

SELECT
  users.id as user_id, approved, target_type, target_id
FROM
  users
INNER JOIN reviewables ON users.id=reviewables.target_id
WHERE approved = false
ORDER BY user_id
userid approved target_type target
39 false User 39
127 false Post 127
276 false Post 276
278 false Post 278
328 false User 328

Разве эта тема не о том, что этого не произошло?

Это моя вина, я, наверное, просмотрел текст слишком бегло и совсем упустил это.