pub struct PluginErrorRecord {
pub plugin_name: String,
pub message: String,
pub code: Option<String>,
pub details: HashMap<String, Value>,
pub proto_error_code: Option<i64>,
}Expand description
A Clone-able, serialization-friendly snapshot of a PluginError.
Used in PipelineResult.errors to surface execution failures from
on_error: ignore / on_error: disable plugins to the caller —
previously those errors were only logged via tracing::warn! and
were invisible to programmatic consumers (agents, dashboards,
retry logic).
PluginError itself can’t be Clone because of its
Box<dyn std::error::Error + Send + Sync> source field, and that
field doesn’t survive serialization anyway. PluginErrorRecord
flattens the five enum variants into a single shape — the
From<&PluginError> impl handles the variant-to-fields mapping.
Fields§
§plugin_name: String§message: String§code: Option<String>§details: HashMap<String, Value>§proto_error_code: Option<i64>Trait Implementations§
Source§impl Clone for PluginErrorRecord
impl Clone for PluginErrorRecord
Source§fn clone(&self) -> PluginErrorRecord
fn clone(&self) -> PluginErrorRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PluginErrorRecord
impl Debug for PluginErrorRecord
Source§impl<'de> Deserialize<'de> for PluginErrorRecord
impl<'de> Deserialize<'de> for PluginErrorRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<&Box<PluginError>> for PluginErrorRecord
Forward &Box<PluginError> to the &PluginError impl.
impl From<&Box<PluginError>> for PluginErrorRecord
Forward &Box<PluginError> to the &PluginError impl.
Public APIs return Result<T, Box<PluginError>> (see
PluginError::boxed), which means error-handling code in the
pipeline (e.g., Ok(Err(e)) inside executor::run_*_phase) holds
e: Box<PluginError>. This blanket forward keeps existing
(&e).into() call sites working without forcing every caller to
write (&*e).into() after the boxing migration.