pub enum PluginError {
Show 26 variants
NotFound(PluginId),
AlreadyRegistered(PluginId),
ManifestParseError {
path: PathBuf,
message: String,
},
LoadFailed {
plugin_id: PluginId,
message: String,
},
ExecutionFailed(String),
ToolNotFound(String),
InvalidId(String),
Storage(String),
McpServerFailed {
plugin_id: PluginId,
message: String,
},
McpClientRequired,
UnsupportedEntryPoint(String),
SandboxError(String),
Io(Error),
WasmError(String),
RegistryError {
message: String,
},
IntegrityError {
package: String,
expected: String,
},
ExtractionError {
message: String,
},
UnsafeEntryType {
entry_type: String,
path: String,
},
PathTraversal {
path: String,
},
PackageTooLarge {
size: u64,
limit: u64,
},
NotOpenClawPlugin,
InvalidPackageName {
name: String,
reason: String,
},
SsrfBlocked {
url: String,
},
SecurityDenied(String),
HashMismatch {
expected: String,
actual: String,
},
LockfileError {
path: PathBuf,
message: String,
},
}Expand description
Errors from plugin operations.
Variants§
NotFound(PluginId)
The requested plugin was not found in the registry.
AlreadyRegistered(PluginId)
A plugin with this ID is already registered.
ManifestParseError
Failed to parse a plugin manifest file.
LoadFailed
Plugin failed to load.
ExecutionFailed(String)
Plugin tool execution failed.
ToolNotFound(String)
The requested tool was not found.
InvalidId(String)
The plugin ID is invalid.
Storage(String)
Storage operation failed.
McpServerFailed
The MCP server for a plugin failed.
McpClientRequired
An MCP client is required but was not provided.
UnsupportedEntryPoint(String)
The plugin entry point type is not supported by this factory.
SandboxError(String)
Sandbox profile error.
Io(Error)
I/O error.
WasmError(String)
WASM runtime error (Extism/Wasmtime).
RegistryError
npm registry API failure.
IntegrityError
SHA-512 SRI integrity verification failed.
ExtractionError
Tarball extraction failure.
UnsafeEntryType
Unsafe entry type in archive (e.g. symlink, hardlink, device node).
PathTraversal
Path traversal detected in archive entry.
PackageTooLarge
Tarball exceeds maximum allowed size.
NotOpenClawPlugin
Package is not an OpenClaw plugin (missing openclaw.plugin.json).
InvalidPackageName
Invalid npm package name.
SsrfBlocked
SSRF attempt blocked — tarball URL doesn’t match registry.
SecurityDenied(String)
Security gate denied the operation.
HashMismatch
WASM module hash verification failed.
LockfileError
Lockfile read/write/parse error.
Trait Implementations§
Source§impl Debug for PluginError
impl Debug for PluginError
Source§impl Display for PluginError
impl Display for PluginError
Source§impl Error for PluginError
impl Error for PluginError
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 PluginError
impl From<Error> for PluginError
Source§impl From<StorageError> for PluginError
impl From<StorageError> for PluginError
Source§fn from(e: StorageError) -> Self
fn from(e: StorageError) -> Self
Auto Trait Implementations§
impl Freeze for PluginError
impl !RefUnwindSafe for PluginError
impl Send for PluginError
impl Sync for PluginError
impl Unpin for PluginError
impl UnsafeUnpin for PluginError
impl !UnwindSafe for PluginError
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> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self file descriptor. Read moreSource§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