# `RequestSeal.SignatureBase.Error`
[🔗](https://github.com/baselabs/request_seal/blob/v0.5.2/lib/request_seal/signature_base/error.ex#L1)

Bounded signature-base errors, without supplied bytes or partial output.

Reasons:

* Input: `:invalid_message`, `:invalid_options`, `:invalid_signature_parameters`,
  `:limit` (documented resource ceilings).
* Components: `:invalid_component`, `:unknown_component`, `:duplicate_component`,
  `:invalid_component_parameters`, `:incompatible_parameters`.
* Context: `:wrong_message_kind`, `:missing_request_context`, `:unavailable_origin`,
  `:unavailable_trailers`, `:missing_field`.
* Fields: `:non_ascii`, `:unknown_field_schema`, `:invalid_field_schema`,
  `:invalid_structured_field`, `:missing_dictionary_key`.
* Query: `:noncanonical_query_name`, `:invalid_query_encoding`,
  `:missing_query_parameter`, `:ambiguous_query_parameter`.

Correct input or supply missing capture/schema evidence before retrying. None
indicates cryptographic validity, authentication, or authorization. Errors
contain only the enumerated reason; there is no exception or telemetry path.

# `reason`

```elixir
@type reason() ::
  :invalid_message
  | :invalid_options
  | :invalid_signature_parameters
  | :limit
  | :invalid_component
  | :unknown_component
  | :duplicate_component
  | :invalid_component_parameters
  | :incompatible_parameters
  | :wrong_message_kind
  | :missing_request_context
  | :unavailable_origin
  | :unavailable_trailers
  | :missing_field
  | :non_ascii
  | :unknown_field_schema
  | :invalid_field_schema
  | :invalid_structured_field
  | :missing_dictionary_key
  | :noncanonical_query_name
  | :invalid_query_encoding
  | :missing_query_parameter
  | :ambiguous_query_parameter
```

# `t`

```elixir
@type t() :: %RequestSeal.SignatureBase.Error{reason: reason()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
