bevyengine/bevy · error · ReadLogError

Failed to read log file: {0}

Error message

Failed to read log file: {0}

What it means

ReadLogError::Io: reading the ProcessorTransactionLog from disk failed with an underlying futures io error (file missing mid-read, permissions, truncated by a crash). The log replay cannot continue until the io issue is resolved.

Source

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

        &'a mut self,
        asset: &'a AssetPath<'_>,
    ) -> BoxedFuture<'a, Result<(), BevyError>> {
        Box::pin(async move { self.write(&format!("{ENTRY_END}{asset}\n")).await })
    }

    fn unrecoverable(&mut self) -> BoxedFuture<'_, Result<(), BevyError>> {
        Box::pin(async move { self.write(UNRECOVERABLE_ERROR).await })
    }
}

/// An error that occurs when reading from the [`ProcessorTransactionLog`] fails.
#[derive(Error, Debug)]
pub enum ReadLogError {
    /// An invalid log line was encountered, consisting of the contained string.
    #[error("Encountered an invalid log line: '{0}'")]
    InvalidLine(String),
    /// A file-system-based error occurred while reading the log file.
    #[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.")]

View on GitHub (pinned to 396ca72708)

Solutions

  1. Inspect the inner io error for the filesystem cause
  2. Ensure the log file is readable and not locked by another processor instance
  3. Retry after fixing the io condition; if the file was corrupted, remove it to force full reprocessing
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at crates/bevy_asset/src/processor/log.rs:244 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/f6dbf67e7c3dd747. Report an issue: GitHub.