Skip to main content

Error

Enum Error 

Source
pub enum Error {
    Transport(Error),
    Grpc(Box<Status>),
    Auth(String),
    InvalidUri(String),
    InvalidMetadata(InvalidMetadataValue),
}
Expand description

All errors that can be returned by the Armada client.

Most callers can pattern-match on the variant that matters to them and propagate the rest with ?. Use Error::auth as a convenience constructor when implementing crate::auth::TokenProvider.

§Example

use armada_client::{ArmadaClient, Error, StaticTokenProvider};

async fn submit_or_retry(client: &ArmadaClient) {
    // ... build request ...
    match client.submit(request).await {
        Ok(resp) => { /* handle success */ }
        Err(Error::Grpc(status)) => {
            // The server returned a non-OK gRPC status (e.g. NOT_FOUND).
            eprintln!("gRPC error: {status}");
        }
        Err(Error::Auth(msg)) => {
            // Token provider failed — check credentials.
            eprintln!("auth failure: {msg}");
        }
        Err(e) => eprintln!("other error: {e}"),
    }
}

Variants§

§

Transport(Error)

A low-level transport failure occurred before a gRPC response could be received — for example a connection refused, TLS handshake error, or DNS resolution failure.

§

Grpc(Box<Status>)

The server returned a non-OK gRPC status code.

Common codes:

  • NOT_FOUND — the requested queue or job set does not exist.
  • PERMISSION_DENIED — the bearer token lacks the required privileges.
  • INVALID_ARGUMENT — the request payload was rejected by the server.
§

Auth(String)

Returned by custom crate::auth::TokenProvider implementations to signal that token retrieval failed.

§

InvalidUri(String)

Returned when the endpoint string passed to crate::client::ArmadaClient::connect or crate::client::ArmadaClient::connect_tls is not a valid URI.

§

InvalidMetadata(InvalidMetadataValue)

The bearer token string contained characters that are not valid in an HTTP header value. Token strings must be ASCII and must not contain control characters (\0, \r, \n, etc.).

Implementations§

Source§

impl Error

Source

pub fn auth(msg: impl Into<String>) -> Self

Convenience constructor for Error::Auth.

Use this in custom crate::auth::TokenProvider implementations:

return Err(Error::auth("token expired"));

Trait Implementations§

Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for Error

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<InvalidMetadataValue> for Error

Source§

fn from(source: InvalidMetadataValue) -> Self

Converts to this type from the input type.
Source§

impl From<Status> for Error

Source§

fn from(s: Status) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

§

impl !UnwindSafe for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more