Otimização do aviso de erro 418 ou 502 Bad Gateway ao postar no fórum

Quando uma publicação é bloqueada no fórum, um pop-up exibe um erro 418 ou uma mensagem de 502 Bad Gateway. Essa mensagem não é muito precisa. Onde no fórum essa mensagem pode ser otimizada para fornecer informações mais detalhadas ao usuário?

Se o usuário abrir as DevTools do navegador (clique com o botão direito > Inspecionar > Console), uma mensagem de erro geralmente é registrada ali. Além disso, em /logs (visível para administradores).

Existe alguma forma de modificar esta mensagem de erro? Por exemplo, alterar a mensagem exibida neste pop-up para “Erro de rede/gateway”.

Isso pode ser um problema subjacente maior. Erros como esses não são tão comuns.

Acho que descobri de onde vem essa mensagem.

Quando o Discourse não consegue encontrar uma mensagem de erro estruturada na resposta, ele recorre ao código de status HTTP e ao statusText:

if (!parsedError) {
  if (error.status && error.status >= 400) {
    parsedError = error.status + " " + error.statusText;
  }
}

Código-fonte do Discourse: fallback para erro HTTP.[1]

Isso significa que 502 Bad Gateway não é uma entrada normal de Site Text. Ele é criado a partir do status e do texto de status da resposta HTTP.

A mensagem resultante é então passada para o diálogo de alerta do Discourse aqui.[2]

O Discourse já usa strings traduzidas quando o servidor retorna um error_key ou outro erro estruturado. No entanto, para uma resposta 502 bruta, ele atinge o fallback acima.

Um plugin poderia substituir a mensagem antes de exibir seu próprio diálogo de erro, mas não vejo um gancho público da Plugin API para alterar globalmente esse fallback. Provavelmente seria necessária uma alteração no núcleo ou um novo gancho de API de plugin para tornar essas mensagens de fallback HTTP globalmente personalizáveis/traduzíveis.


  1. ↩︎

  2. ↩︎

1 curtida