Skip to main content

AuthErrorKind

Enum AuthErrorKind 

Source
pub enum AuthErrorKind {
    NotAuthenticated,
    Expired,
    InvalidCredentials,
    RateLimit,
    ProviderError,
    Other,
}
Expand description

Best-effort classification of an auth-related CLI failure.

Returned by classify_failure. Hosts can use it to surface a cleaner message (“run claude login”) instead of dumping CLI stderr, or to skip retry policies on errors that won’t resolve on their own.

Conservative on purpose: false positives turn legitimate non-auth failures into “auth error” surprises, so the classifier prefers to miss an auth error than to misclassify a non-auth one. Use AuthErrorKind::Other only when stronger signals (HTTP status strings, the literal word “auth”) fire.

Variants§

§

NotAuthenticated

No credentials at all – the user has not run claude login and has no env auth set. Fix: run claude login or set one of the env vars listed in AuthStrategy.

§

Expired

Stored OAuth/session credentials existed but are expired. Fix: re-run claude login.

§

InvalidCredentials

Credentials were presented but rejected. Most often a wrong or revoked ANTHROPIC_API_KEY, or an CLAUDE_CODE_OAUTH_TOKEN that no longer maps to a valid session.

§

RateLimit

Authenticated but the request was rejected for rate limit / quota / billing reasons. Different remediation: wait, top up, or switch keys – not “log in again.”

§

ProviderError

Bedrock or Vertex provider error (cloud creds missing or rejected). Distinct because the fix lives in the cloud provider’s auth, not in claude login.

§

Other

Looked auth-shaped (HTTP 401/403, the word “auth”, etc.) but didn’t match any of the more specific patterns. Useful for callers that want “is this an auth thing?” without needing to know the exact subcategory.

Implementations§

Source§

impl AuthErrorKind

Source

pub fn as_str(self) -> &'static str

Stable string label, useful for logs and protocol payloads. Matches the serde_json representation.

Trait Implementations§

Source§

impl Clone for AuthErrorKind

Source§

fn clone(&self) -> AuthErrorKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for AuthErrorKind

Source§

impl Debug for AuthErrorKind

Source§

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

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

impl Eq for AuthErrorKind

Source§

impl PartialEq for AuthErrorKind

Source§

fn eq(&self, other: &AuthErrorKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for AuthErrorKind

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for AuthErrorKind

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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<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