defmodule Jido.Chat.Errors.Ingress do @moduledoc """ Inbound routing error wrapper for request/event transport flows. """ use Splode.Error, class: :ingress, fields: [ :transport, :adapter_name, :reason, context: %{} ] @impl true def message(%__MODULE__{transport: transport, adapter_name: adapter_name, reason: reason}) do transport_label = case transport do value when is_atom(value) -> Atom.to_string(value) value -> inspect(value) end adapter_label = case adapter_name do value when is_atom(value) -> Atom.to_string(value) nil -> "unknown" value -> to_string(value) end "ingress #{transport_label} routing failed for adapter #{adapter_label}: #{inspect(reason)}" end end