bevyengine/bevy · error · ValidateLogError

Encountered an unrecoverable error. All assets will be repro

Error message

Encountered an unrecoverable error. All assets will be reprocessed.

What it means

ValidateLogError::Unrecoverable: the processor transaction log contains the unrecoverable marker, meaning a previous processing session failed in a way that leaves the log unreliable. The processor's documented response is to discard incremental state and reprocess all assets.

Source

Thrown at crates/bevy_asset/src/processor/log.rs:262

    #[error("Failed to read log file: {0}")]
    Io(#[from] futures_io::Error),
}

/// An error that occurs when writing to the [`ProcessorTransactionLog`] fails.
#[derive(Error, Debug)]
#[error(
    "Failed to write {log_entry:?} to the asset processor log. This is not recoverable. {error}"
)]
pub(crate) struct WriteLogError {
    pub(crate) log_entry: LogEntry,
    pub(crate) error: BevyError,
}

/// An error that occurs when validating the [`ProcessorTransactionLog`] fails.
#[derive(Error, Debug)]
pub enum ValidateLogError {
    /// An error that could not be recovered from. All assets will be reprocessed.
    #[error("Encountered an unrecoverable error. All assets will be reprocessed.")]
    UnrecoverableError,
    /// A [`ReadLogError`].
    #[error("Failed to read log entries: {0}")]
    ReadLogError(BevyError),
    /// Duplicated process asset transactions occurred.
    #[error("Encountered a duplicate process asset transaction: {0:?}")]
    EntryErrors(Vec<LogEntryError>),
}

/// An error that occurs when validating individual [`ProcessorTransactionLog`] entries.
#[derive(Error, Debug)]
pub enum LogEntryError {
    /// A duplicate process asset transaction occurred for the given asset path.
    #[error("Encountered a duplicate process asset transaction: {0}")]
    DuplicateTransaction(AssetPath<'static>),
    /// A transaction was ended that never started for the given asset path.
    #[error("A transaction was ended that never started {0}")]
    EndedMissingTransaction(AssetPath<'static>),

View on GitHub (pinned to 396ca72708)

Solutions

  1. Let the processor reprocess all assets (delete stale processed outputs if needed)
  2. Find and fix the original failure that wrote the unrecoverable marker (often disk/full crash during processing)
  3. Ensure only one processor instance writes a given log
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/bevy_asset/src/processor/log.rs:262 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of bevyengine/bevy@396ca72708 (2026-08-20). Data as JSON: /api/errors/53834379b0b37d73. Report an issue: GitHub.