Não estou ciente de nenhuma mudança recente que tenha alterado esse comportamento. Minha impressão era de que sempre funcionou assim (exibindo um erro se o usuário não for encontrado). Este é o código que verifica se é possível ler o nome de usuário a partir das credenciais da API.
E o user abaixo será nil porque não existe, o que levantará a mensagem de erro acima na linha 131.
Uma mudança recente foi feita há 23 dias, mas ela não se aplica à sua situação e, de qualquer forma, retorna uma mensagem de erro diferente.
Só para confirmar, configurei meu Discourse local para usar este commit de mais de um ano atrás e recebo o mesmo erro ao usar um usuário inexistente.
Uma coisa boa que surge disso é que agora temos escopos de API, então se os usuários precisarem apenas de acesso de leitura, você pode atualizar essa chave de API para que ela não seja mais uma chave de acesso total.
