# `Gemini.Error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L1)

Standardized error structure for Gemini client.

# `api_reason`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L27)

```elixir
@type api_reason() :: term() | nil
```

API-specific error code or reason, if provided by Gemini.

# `error_details`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L30)

```elixir
@type error_details() :: map() | nil
```

Additional details or context about the error.

# `error_message`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L21)

```elixir
@type error_message() :: String.t()
```

A human-readable message describing the error.

# `error_type`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L18)

```elixir
@type error_type() :: atom()
```

The type of error.

# `http_status`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L24)

```elixir
@type http_status() :: integer() | nil
```

The HTTP status code, if the error originated from an HTTP response.

# `original_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L33)

```elixir
@type original_error() :: term() | nil
```

The original error term, if this error is wrapping another.

# `t`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L8)

```elixir
@type t() :: %Gemini.Error{
  api_reason: term() | nil,
  details: map() | nil,
  http_status: integer() | nil,
  message: String.t(),
  original_error: term() | nil,
  type: atom()
}
```

# `api_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L52)

Create an API error from Gemini response.

# `auth_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L81)

Create an authentication error.

This error type is used when authentication fails, such as:
- Invalid API keys
- Service account token generation failures
- Missing or invalid credentials

# `config_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L69)

Create a configuration error.

# `http_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L45)

Create an HTTP error.

# `invalid_response`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L109)

Create an invalid response error.

# `network_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L102)

Create a network/connection error.

# `new`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L38)

Create a new error with type and message.

# `serialization_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L95)

Create a JSON serialization/deserialization error.

# `validation_error`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.13.0/lib/gemini/error.ex#L88)

Create a request validation error.

---

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