defmodule PlausibleWeb.Plugs.ErrorHandler do @moduledoc """ A thin macro wrapper around Plug.ErrorHandler that adds Sentry context containing a readable support hash presented to the users. To be used in the user-facing APIs, so that we don't leak internal server errors. Usage: `use PlausibleWeb.Plugs.ErrorHandler` """ defmacro __using__(_) do quote do use Plug.ErrorHandler @impl Plug.ErrorHandler def handle_errors(conn, %{kind: kind, reason: reason}) do json(conn, %{error: "internal server error"}) end end end end