Para nossa aplicação, utilizamos uma chave de API global para ser usada com todos os usuários. Estávamos usando um nome de usuário virtual (usuário inexistente) anonymous para representar o contexto quando um usuário não estava logado. Isso funcionou por mais de 3 anos até 25/10/2020 às 00:39 CT.
Mitiguei o problema hoje criando um usuário com esse nome de usuário. Foi implementada alguma restrição neste fim de semana? Houve atualização na API?
Isso quebrou a capacidade de visualizar comentários para todos os usuários públicos, então uma resposta é muito apreciada.
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.
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.
Se for um site público, você deverá conseguir fazer essas requisições do seu backend sem nenhuma autenticação para obter a visualização anônima. Se os limites de taxa se tornarem um problema, então sim, você precisará usar um usuário fictício real.
Outra coisa que acabei de pensar é a configuração do site revoke api keys days. Como aquele usuário não existe, nunca atualizamos a data de último uso daquela chave e tenho certeza de que a chave foi revogada automaticamente? Ainda não tenho certeza de como você teria sido capaz de fazer uma solicitação válida em primeiro lugar, no entanto.