rustfs/rustfs · error · ManualTransitionJobError

manual transition job schema is unsupported: {0}

Error message

manual transition job schema is unsupported: {0}

What it means

A persisted manual transition job file was written by a schema version this binary does not understand (schema_version outside the supported range); the version string is embedded. Protects against silently misreading newer or corrupt job files.

Source

Thrown at crates/ecstore/src/bucket/lifecycle/manual_transition_job.rs:161

        barrier.arrived.notify_one();
        barrier
            .release
            .acquire()
            .await
            .expect("manual transition job CAS barrier should remain open")
            .forget();
    }
}

fn is_false(value: &bool) -> bool {
    !*value
}

#[derive(Debug, thiserror::Error)]
pub enum ManualTransitionJobError {
    #[error("manual transition job is corrupt: {0}")]
    Corrupt(&'static str),
    #[error("manual transition job schema is unsupported: {0}")]
    UnsupportedSchema(String),
    #[error("manual transition job checksum mismatch")]
    ChecksumMismatch,
    #[error("manual transition job json error: {0}")]
    Json(#[from] serde_json::Error),
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ManualTransitionJobState {
    Running,
    Completed,
    Partial,
    Failed,
    Cancelled,
    Unknown,
}

View on GitHub (pinned to 5dca076efe)

Solutions

  1. Upgrade to the node version that understands the job schema
  2. Delete/recreate the job under the current schema
  3. Add a migration for the older job schema
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/ecstore/src/bucket/lifecycle/manual_transition_job.rs:155 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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