Também tentei usar uma carga útil JSON com o comando CURL.
Eu obtenho o mesmo resultado em ambos os casos: não consigo fazer login usando as credenciais do novo usuário e o novo usuário não é encontrado na tabela de usuários.
Percebi que há um erro na nossa documentação da API. O parâmetro active só é permitido quando uma chave de API associada a um usuário administrador é usada e tem sido o caso desde 2016.
Ainda não aborda o problema original da mensagem ser enganosa para os administradores.
○ → curl -X POST -H \"api-key: $API_KEY\" -H 'api-username: michael' https://try.discourse.org/users.json --json \"$(jo email=michael+test@contoso.com username=michaeltest password=$PASSWORD active=true approved=true)\"
{\"success\":true,\"active\":true,\"message\":\"Sua conta foi ativada e está pronta para uso.\"}
○ → curl -X POST -H \"api-key: $API_KEY\" -H 'api-username: michael' https://try.discourse.org/users.json --json \"$(jo email=michael+test2@contoso.com username=michaeltest2 password=$PASSWORD active=true approved=true)\"
{\"success\":true,\"active\":false,\"message\":\"Sua conta foi ativada e está pronta para uso.\"}
^ apenas um único usuário foi criado acima
Estou inferindo que muita ofuscação foi colocada no caminho /users.json para dissuadir spammers etc., mas isso parece estar dificultando as coisas para os administradores também. Eu me pergunto se deveríamos adicionar um caminho explícito de administrador para separar os dois (criação de conta normal vs. criação de conta de administrador) que permitirá que a função de administrador seja desofuscada.
Você está correto. Este era o problema: um usuário com o mesmo endereço de e-mail já existe.
Eu estava pesquisando por nome de usuário e por created_at em ordem decrescente, que é o motivo pelo qual o novo usuário não apareceu nos resultados da pesquisa.