Estamos usando SSO e, quando alguém fecha sua conta, também excluímos a conta do Discourse dela via API (ou a anonimizamos, se houver posts).
No entanto, algo parece estar errado, pois temos visto alguns erros 403 ao fazer isso. Investigando um pouco, descobri que esta é a mensagem de erro retornada pela chamada da API:
{
"http_code": 403,
"body": "{\"deleted\":false,\"message\":\"User XXX has 0 posts, so they can't be deleted.\"}"
}
Mas, se há 0 posts, deveria ser possível excluí-lo? Ao verificar as informações dessa conta específica, realmente não há posts:
No entanto, há uma mensagem privada para o Discobot (tutorial).
Então, acho que há algumas questões aqui:
- A mensagem de erro que recusou a exclusão do usuário está contando apenas os posts públicos, mas talvez devesse contar os privados também?
- Na verdade, as mensagens privadas deveriam impedir que uma conta fosse excluída? Entendo o raciocínio de que remover uma conta complica a narrativa em um tópico público, mas em uma mensagem privada talvez o argumento não seja tão sólido?
- Se a resposta à anterior for ainda sim (ou seja, mensagens privadas ainda devem impedir a remoção de uma conta), as mensagens para o Discobot também deveriam contar para impedir a remoção de uma conta? O que quero dizer é que a maioria das pessoas passa pelo tutorial e envia PMs ao Discobot… o que torna praticamente impossível remover muitas contas que nunca participaram, apenas porque fizeram o tutorial (talvez isso seja verdade apenas após
delete_user_max_post_agedias, mas ainda assim).
Por fim, e não tenho certeza se isso está relacionado ao ponto 1, mas ao verificar as informações da API para esse usuário, retorna:
post_count: 0
can_be_deleted: 1
can_delete_all_posts: 0
Mas, efetivamente, esse usuário não pode ser excluído. Então, talvez a lógica de can_be_deleted esteja contando apenas os posts públicos também?

