rustfs/rustfs · error · ParseConfigError

IO Error:{0}

Error message

IO Error:{0}

What it means

ParseConfigError wrapper for an underlying std::io::Error raised while reading the notification configuration stream (the parser reads from an io::Read source). The io error is embedded; it distinguishes transport/read failure from XML content problems, so callers can retry the read instead of reporting invalid XML.

Source

Thrown at crates/notify/src/rules/xml_config.rs:51

    #[error("There can only be one 'suffix' in the filter rule")]
    DuplicateSuffixFilter,
    #[error("Missing event name")]
    MissingEventName,
    #[error("Duplicate event name:{0}")]
    DuplicateEventName(String), // EventName is usually an enum, and here String is used to represent its text
    #[error("Repeated queue configuration: ID={0:?}, ARN={1}")]
    DuplicateQueueConfiguration(Option<String>, String),
    #[error("Unsupported configuration types (e.g. Lambda, Topic)")]
    UnsupportedConfiguration,
    #[error("ARN not found:{0}")]
    ArnNotFound(String),
    #[error("Unknown area:{0}")]
    UnknownRegion(String),
    #[error("ARN parsing error:{0}")]
    ArnParseError(#[from] ArnError),
    #[error("TargetID parsing error:{0}")]
    TargetIDParseError(#[from] TargetIDError),
    #[error("IO Error:{0}")]
    IoError(#[from] std::io::Error),
    #[error("Region mismatch: Configure region {config_region}, current region {current_region}")]
    RegionMismatch { config_region: String, current_region: String },
    #[error("ARN {0} Not found in the provided list")]
    ArnValidation(String),
}

#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
pub struct FilterRule {
    #[serde(rename = "Name")]
    pub name: String,
    #[serde(rename = "Value")]
    pub value: String,
}

impl FilterRule {
    fn validate(&self) -> Result<(), ParseConfigError> {
        if !self.name.eq_ignore_ascii_case("prefix") && !self.name.eq_ignore_ascii_case("suffix") {

View on GitHub (pinned to 35af688cd9)

Solutions

  1. Check the wrapped I/O error (truncated body, broken stream, permissions)
  2. Resend/reload the configuration once the I/O condition is fixed
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at crates/notify/src/rules/xml_config.rs:51 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rustfs/rustfs@35af688cd9 (2026-08-20). Data as JSON: /api/errors/5ee4e729fc259667. Report an issue: GitHub.