pub enum Error {
}
Expand description
Error types for Claude AI SDK operations
This enum covers all possible error conditions that can occur when using the Claude AI SDK, from configuration issues to runtime execution problems. Each error has an associated error code for easy reference.
§Examples
use claude_sdk_rs_core::{Error, Result};
fn handle_error(result: Result<String>) {
match result {
Ok(response) => println!("Success: {}", response),
Err(Error::BinaryNotFound) => {
eprintln!("Error C001: Please install the Claude Code CLI first");
}
Err(Error::Timeout(seconds)) => {
eprintln!("Error C007: Request timed out after {} seconds", seconds);
}
Err(e) => eprintln!("Error {}: {}", e.code(), e),
}
}
Variants§
BinaryNotFound
Claude Code CLI binary not found in PATH [C001]
This error occurs when the Claude Code CLI tool is not installed or not available in the system PATH. Install the CLI first.
SessionNotFound(String)
Session with the given ID was not found [C002]
Occurs when trying to access a session that doesn’t exist or has been deleted.
PermissionDenied(String)
Permission denied for the specified tool [C003]
This error occurs when trying to use a tool that’s restricted
by the current configuration’s allowed_tools
setting.
McpError(String)
Error from an MCP (Model Context Protocol) server [C004]
Indicates a problem with an external MCP server that Claude was trying to communicate with.
ConfigError(String)
Invalid configuration provided [C005]
Occurs when the provided configuration has invalid or conflicting settings that prevent proper operation.
InvalidInput(String)
Invalid input provided to a function [C006]
Indicates that the input parameters don’t meet the expected format or constraints.
Timeout(u64)
Operation timed out [C007]
The operation took longer than the configured timeout period. Consider increasing the timeout for complex queries.
SerializationError(Error)
JSON serialization or deserialization error [C008]
Occurs when parsing JSON responses from Claude CLI or when serializing configuration to JSON format.
Io(Error)
Input/output operation failed [C009]
Covers file system operations, network operations, and other I/O related failures.
ProcessError(String)
Process execution error [C010]
Occurs when the Claude CLI process fails to execute properly or returns an unexpected exit code.
StreamClosed
Stream was closed unexpectedly [C011]
Happens during streaming operations when the connection to Claude CLI is interrupted.
NotAuthenticated
Claude CLI is not authenticated [C012]
The Claude CLI tool needs to be authenticated before use.
Run claude auth
to authenticate.
RateLimitExceeded
Rate limit exceeded [C013]
Too many requests have been made in a short period. Wait before retrying.
Utf8Error(FromUtf8Error)
UTF-8 conversion error [C014]
Occurs when trying to convert bytes to UTF-8 string but the data contains invalid UTF-8 sequences.
Implementations§
Source§impl Error
impl Error
Sourcepub fn code(&self) -> ErrorCode
pub fn code(&self) -> ErrorCode
Get the error code for this error
Error codes are useful for programmatic error handling and for looking up specific troubleshooting steps.
§Example
use claude_sdk_rs_core::Error;
let error = Error::BinaryNotFound;
assert_eq!(error.code().to_string(), "C001");
Sourcepub fn is_recoverable(&self) -> bool
pub fn is_recoverable(&self) -> bool
Check if this error is recoverable
Some errors can be recovered from by retrying or changing configuration, while others indicate permanent failures.
§Example
use claude_sdk_rs_core::Error;
let error = Error::Timeout(30);
if error.is_recoverable() {
// Can retry with longer timeout
}
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<Error> for InteractiveError
impl From<Error> for InteractiveError
Source§impl From<FromUtf8Error> for Error
impl From<FromUtf8Error> for Error
Source§fn from(source: FromUtf8Error) -> Self
fn from(source: FromUtf8Error) -> Self
Source§impl From<InteractiveError> for Error
impl From<InteractiveError> for Error
Source§fn from(err: InteractiveError) -> Self
fn from(err: InteractiveError) -> Self
Auto Trait Implementations§
impl Freeze for Error
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more