フォーラムで投稿がブロックされ、418エラーまたは502 Bad Gatewayのポップアップが表示される問題の改善

フォーラム内で投稿がブロックされた際、ポップアップに「418 error」または「502 Bad gateway」の表示が出ます。このメッセージは正確さに欠けており、フォーラムのどの部分でこのメッセージを最適化し、ユーザーにより詳細な情報を提供できるでしょうか。

ユーザーがブラウザのDevTools(右クリック > 検証 > コンソール)を開くと、通常、そこにエラーメッセージが記録されます。また、/logs(管理者のみ表示可能)にも記録されます。

このエラーメッセージを変更する方法はありますか?例えば、このポップアップ内のメッセージを「ネットワーク/ゲートウェイエラー」に変更したいです。

これはより大きな根本的な問題かもしれません。このようなエラーは、それほど頻繁には発生しません。

このメッセージの由来がわかったようです。

Discourse がレスポンス内で構造化されたエラーメッセージを見つけられない場合、HTTP ステータスコードと statusText にフォールバックします。

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

Discourse ソース: HTTP エラーのフォールバック。[1]

つまり、502 Bad Gateway は通常の Site Text エントリではありません。HTTP レスポンスのステータスとステータステキストから生成されます。

生成されたメッセージは、ここで Discourse のアラートダイアログに渡されます。[2]

サーバーが error_key または他の構造化エラーを返す場合、Discourse はすでに翻訳された文字列を使用しています。しかし、生の 502 レスポンスの場合、上記のフォールバックに到達します。

プラグインは、独自のエラーダイアログを表示する前にメッセージを置き換えることはできますが、このフォールバックをグローバルに変更するための公開されたプラグイン API フックは見当たりません。これらの HTTP フォールバックメッセージをグローバルにカスタマイズ可能/翻訳可能にするには、コアの変更または新しいプラグイン API フックが必要になる可能性があります。


  1. ↩︎

  2. ↩︎

「いいね!」 1