Ao configurar um novo Discourse com a opção ‘aprovar usuários’ ativada, descobri que, após criar e depois excluir um usuário de teste, o mesmo ID de usuário foi reutilizado posteriormente quando um usuário real se cadastrou. No entanto, como uma linha permaneceu na tabela public.reviewables com o mesmo target_id, nenhuma nova linha foi criada para esse segundo usuário. A interface, então, listou o nome de usuário agora excluído ao solicitar a aprovação do novo usuário.
Como você excluiu o usuário de teste inicial? Foi pela interface do usuário do Discourse ou pelo console do Rails?
Toda a gestão de usuários foi feita na interface.
Não consegui reproduzir isso e, infelizmente, não estava registrando cuidadosamente todos os passos que seguia, pois estava apenas aprendendo a operar o Discourse. Tenho os registros atuais das tabelas users e reviewables, que corroboram parcialmente o que vi, caso haja alguma pista nelas, bem como os logs do nginx e do rails.
Usamos sequências do PostgreSQL para IDs de usuários, e elas sempre aumentam. Mesmo que você reverta uma transação, a sequência continuará aumentando.
Seria necessário manipulação direta do banco de dados para violar essa restrição (por exemplo, redefinir a sequência de IDs na tabela de usuários).
Estou fechando este relato enquanto aguardo uma reprodução do problema. Se você conseguir reproduzir essa situação, por favor, sinalize para que seja reaberto.