Exception raised when a value cannot be formatted by the requested message format function due to an incompatible type or missing configuration.
The :reason field is a documented atom describing the failure
category. The :detail field carries any additional human-readable
context produced by a downstream formatter (for example, the
Exception.message/1 text of the formatter's own error). The
:cause field carries the underlying exception when one is
available, so callers can pattern-match on the inner type.