Não consigo reproduzir o problema. Há alguma chance de você ter digitado algum tipo de espaço em branco invisível ou algo assim quando a mensagem de erro “deve conter apenas números, letras, hífens, pontos e sublinhados” foi exibida?
A verificação do nome de usuário é feita no servidor, então, se houvesse um problema com a expressão regular, ela sempre geraria os mesmos resultados para a mesma entrada.
Eu pensei que pudesse estar relacionado a algum tipo de limitação de taxa, mas agora obtive o erro mesmo após uma longa pausa (2 minutos) na primeira solicitação e, em seguida, sucesso na terceira solicitação em alguns segundos.
Consegui reproduzir isso executando o código acima nas Ferramentas de Desenvolvedor.
Ainda não consegui reproduzir o problema. Você poderia tentar desativar e reativar a configuração do site unicode usernames? Talvez um worker do unicorn não tenha recebido a informação de que a configuração mudou. Isso explicaria por que apenas algumas das solicitações resultam em erro. Se isso não ajudar, tente reconstruir o container do aplicativo.
Isso não ajudou, mas sim, eu também não consigo reproduzi-lo no meu instância local do Docker e parece que desapareceu após a reinicialização ao atualizar o Discourse.
A propósito, se alguém estiver procurando uma maneira mais simples de incluir letras russas na lista branca, parece que essa expressão regular funciona: [\p{Cyrillic}]