defmodule ToweropsWeb.ErrorJSON do @moduledoc """ This module is invoked by your endpoint in case of errors on JSON requests. See config/config.exs. """ require Logger # Render 500 errors with generic message and request ID for support # Never expose internal error details, stack traces, or module names to clients def render("500.json", assigns) do # Log full error details server-side for debugging Logger.error("Internal server error", assigns: inspect(assigns), request_id: Logger.metadata()[:request_id] ) # Return generic error to client with request ID for support tracking %{ errors: %{ detail: "An unexpected error occurred. Please contact support if this persists.", request_id: Logger.metadata()[:request_id] } } end # By default, Phoenix returns the status message from # the template name. For example, "404.json" becomes # "Not Found". def render(template, _assigns) do %{errors: %{detail: Phoenix.Controller.status_message_from_template(template)}} end end