Summary
Types
@type bolt_failure() :: %{ :code => atom() | binary(), :message => binary() | nil, optional(:gql_status) => binary(), optional(:description) => binary(), optional(:diagnostic_record) => map(), optional(:cause) => bolt_failure() }
A decoded Bolt FAILURE.
code/message are always present — message being the server's human
diagnostic. The rest arrive only on a GQL FAILURE (Bolt 5.7+):
gql_status— the GQLSTATUS code, e.g."42001"description— the standard description of that status class. Generic by design; pair it withgql_status, don't read it as the diagnostic.diagnostic_record—_classification, and_positionfor a syntax errorcause— the underlying failure, same shape, often a more precise status
@type t() :: %Bolty.Error{ __exception__: term(), bolt: bolt_failure() | nil, code: atom(), module: module(), packstream: %{bits: any() | nil} | nil }
Functions
Return the code for the given error.
Examples
iex> {:error, %Bolty.Error{} = error} = do_something()
iex> Exception.message(error)
"Unable to perform this action."
Gets the corresponding atom based on the error code.
An atom code is already resolved and passes through unchanged; this lets
callers build an error map with a known atom code (e.g.
%{code: :unsupported_message_version, message: ...}) without it being
collapsed to :unknown by the string lookup.