> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KineticaError

> KineticaError — Kinetica Rust API

[gpudb\_api](https://docs.kinetica.com/content/api/rust/index.md)::<wbr />[errors](https://docs.kinetica.com/content/api/rust/errors/index.md)
[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L27-L85)&#x20;

<pre>`pub enum KineticaError {    Http(String),    Avro(String),    Api(String),    Unauthorized(String),    HostnameRegexFailure(String),    Connection(String),    Config(String),    FailoverDisabled(String),    HaUnavailable(String),    Exit(String),    Internal,    Caused {        message: String,        source: Box<KineticaError>,    },}`</pre>

The main error type for all Kinetica operations.All API calls return `Result<T, KineticaError>` to handle various failure modes.The variant tells what kind of failure it was: a request that failed on every cluster it could reach is a [`KineticaError::Connection`](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError#variant.Connection). The URL a request failed at is in its message.

## Examples

```rust theme={null}
use gpudb_api::KineticaError;

fn example() -> Result<(), KineticaError> {
    // Operations that might fail...
    Ok(())
}
```

## Variants

### Http([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

HTTP/network communication error

### Avro([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Avro serialization/deserialization error

### Api([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Server-side API error (returned by Kinetica)

### Unauthorized([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Unauthorized access error (authentication failed)

### HostnameRegexFailure([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Hostname regex mismatch error

### Connection([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Connection error (server not reachable or not running)

### Config([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Configuration error (invalid parameters, missing permissions, etc.)

### FailoverDisabled([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

HA failover is disabled

### HaUnavailable([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

HA failover unavailable (all clusters tried)

### Exit([String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html))

Server exit/shutdown in progress

### Internal

Internal client error

### Caused

An error reported in terms of the one that caused it.Recovery paths use this to report what actually went wrong while keeping the underlying failure reachable through [`std::error::Error::source`](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.source) — a retry’s own failure is usually a consequence of the original, and replacing it loses the only useful message.

#### Fields

`message: String``source: Box<KineticaError>`

## Implementations

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L87-L134)
impl [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L91-L96)
pub fn [caused](#method.caused)(message: impl [Into](https://doc.rust-lang.org/1.98.1/core/convert/trait.Into.html)\<[String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)>, source: [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)) -> Self

Reports `message`, keeping `source` as the underlying cause.See [`KineticaError::Caused`](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError#variant.Caused).

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L99-L114)
pub fn [message](#method.message)(\&self) -> [String](https://doc.rust-lang.org/1.98.1/alloc/string/struct.String.html)

The error’s message without the kind of error before it.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L127-L133)
pub fn [root\_cause](#method.root_cause)(\&self) -> &[KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

The error underneath this one, following the chain to its root.Returns `self` when nothing is attached. Useful for inspecting what actually failed when an error has been re-reported by a recovery path.

## Trait Implementations

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
impl [Clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html) for [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
fn [clone](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#tymethod.clone)(\&self) -> [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

Returns a duplicate of the value. [Read more](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#tymethod.clone)

1.0.0 (const: [unstable](https://github.com/rust-lang/rust/issues/142757)) · [Source](https://doc.rust-lang.org/1.98.1/src/core/clone.rs.html#245-247)
fn [clone\_from](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#method.clone_from)(\&mut self, source: \&Self)

Performs copy-assignment from `source`. [Read more](https://doc.rust-lang.org/1.98.1/core/clone/trait.Clone.html#method.clone_from)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
impl [Debug](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html) for [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
fn [fmt](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html#tymethod.fmt)(\&self, f: \&mut [Formatter](https://doc.rust-lang.org/1.98.1/core/fmt/struct.Formatter.html)\<'\_>) -> [Result](https://doc.rust-lang.org/1.98.1/core/fmt/type.Result.html)

Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Debug.html#tymethod.fmt)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
impl [Display](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Display.html) for [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
fn [fmt](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Display.html#tymethod.fmt)(\&self, \_\_formatter: \&mut [Formatter](https://doc.rust-lang.org/1.98.1/core/fmt/struct.Formatter.html)\<'\_>) -> [Result](https://doc.rust-lang.org/1.98.1/core/fmt/type.Result.html)

Formats the value using the given formatter. [Read more](https://doc.rust-lang.org/1.98.1/core/fmt/trait.Display.html#tymethod.fmt)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
impl [Error](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html) for [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/errors.rs#L26)
fn [source](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.source)(\&self) -> [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&(dyn [Error](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html) + 'static)>

Returns the lower-level source of this error, if any. [Read more](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.source)

1.0.0 · [Source](https://doc.rust-lang.org/1.98.1/src/core/error.rs.html#137)
fn [description](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.description)(\&self) -> &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)

👎Deprecated since 1.42.0: use the Display impl or to\_string()&#x20;
&#x20;[Read more](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.description)

1.0.0 · [Source](https://doc.rust-lang.org/1.98.1/src/core/error.rs.html#147)
fn [cause](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.cause)(\&self) -> [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<\&dyn [Error](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html)>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting&#x20;

[Source](https://doc.rust-lang.org/1.98.1/src/core/error.rs.html#260)
fn [provide](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.provide)\<'a>(&'a self, request: \&mut [Request](https://doc.rust-lang.org/1.98.1/core/error/struct.Request.html)\<'a>)

🔬This is a nightly-only experimental API. (`error_generic_member_access`)
Provides type-based access to context intended for error reports. [Read more](https://doc.rust-lang.org/1.98.1/core/error/trait.Error.html#method.provide)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sql.rs#L123-L127)
impl [From](https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html)\<[KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)> for [SqlError](https://docs.kinetica.com/content/api/rust/sql/enum.SqlError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sql.rs#L124-L126)
fn [from](https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html#tymethod.from)(e: [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)) -> Self

Converts to this type from the input type.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L1147-L1151)
impl [From](https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html)\<[KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)> for [BatchingSqlxError](https://docs.kinetica.com/content/api/rust/sqlx_support/enum.BatchingSqlxError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L1148-L1150)
fn [from](https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html#tymethod.from)(e: [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)) -> Self

Converts to this type from the input type.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/bulk_inserter.rs#L865-L869)
impl\<T> [From](https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html)\<[QueueError](https://docs.kinetica.com/content/api/rust/bulk_inserter/struct.QueueError.md)\<T>> for [KineticaError](https://docs.kinetica.com/content/api/rust/errors/enum.KineticaError.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/bulk_inserter.rs#L866-L868)
fn [from](https://doc.rust-lang.org/1.98.1/core/convert/trait.From.html#tymethod.from)(error: [QueueError](https://docs.kinetica.com/content/api/rust/bulk_inserter/struct.QueueError.md)\<T>) -> Self

Converts to this type from the input type.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.