#[non_exhaustive]pub enum HandlerError {
UserCancelled,
Timeout {
timeout_seconds: u64,
},
InvalidInput {
details: String,
},
Configuration {
message: String,
},
Generic {
message: String,
},
External {
source: Box<dyn Error + Send + Sync>,
},
}Expand description
Errors that can occur during handler operations
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
UserCancelled
Handler operation failed due to user cancellation
Timeout
Handler operation timed out
InvalidInput
Input validation failed
Configuration
Handler configuration error
Generic
Generic handler error
External
External system error (e.g., UI framework, database)
Implementations§
Source§impl HandlerError
impl HandlerError
Sourcepub fn into_jsonrpc_error(&self) -> JsonRpcError
pub fn into_jsonrpc_error(&self) -> JsonRpcError
Convert handler error to JSON-RPC error
This method centralizes the mapping between handler errors and JSON-RPC error codes, ensuring consistency across all handlers.
§Error Code Mapping
- -1: User rejected sampling request (MCP 2025-06-18 spec)
- -32801: Handler operation timed out
- -32602: Invalid input (bad request)
- -32601: Handler configuration error (method not found)
- -32603: Generic/external handler error (internal error)
§Examples
use turbomcp_client::handlers::HandlerError;
let error = HandlerError::UserCancelled;
let jsonrpc_error = error.into_jsonrpc_error();
assert_eq!(jsonrpc_error.code, -1);
assert!(jsonrpc_error.message.contains("User rejected"));Trait Implementations§
Source§impl Debug for HandlerError
impl Debug for HandlerError
Source§impl Display for HandlerError
impl Display for HandlerError
Source§impl Error for HandlerError
impl Error for HandlerError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for HandlerError
impl !RefUnwindSafe for HandlerError
impl Send for HandlerError
impl Sync for HandlerError
impl Unpin for HandlerError
impl !UnwindSafe for HandlerError
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more