bevyengine/bevy · error · MissingAssetSourceError

Asset Source '{0}' does not exist

Error message

Asset Source '{0}' does not exist

What it means

MissingAssetSourceError: an operation referenced an asset source by id (e.g. 'my_source' via my_source://... paths) that was never registered with the AssetSourceBuilders / AssetSources collection. The lookup by AssetSourceId found no matching source.

Source

Thrown at crates/bevy_asset/src/io/source.rs:652

    pub fn ids(&self) -> impl Iterator<Item = AssetSourceId<'static>> + '_ {
        self.sources
            .keys()
            .map(|k| AssetSourceId::Name(k.clone_owned()))
            .chain(Some(AssetSourceId::Default))
    }

    /// This will cause processed [`AssetReader`](crate::io::AssetReader) futures (such as [`AssetReader::read`](crate::io::AssetReader::read)) to wait until
    /// the [`AssetProcessor`](crate::AssetProcessor) has finished processing the requested asset.
    pub(crate) fn gate_on_processor(&mut self, processing_state: Arc<ProcessingState>) {
        for source in self.iter_processed_mut() {
            source.gate_on_processor(processing_state.clone());
        }
    }
}

/// An error returned when an [`AssetSource`] does not exist for a given id.
#[derive(Error, Debug, Clone, PartialEq, Eq)]
#[error("Asset Source '{0}' does not exist")]
pub struct MissingAssetSourceError(AssetSourceId<'static>);

/// An error returned when an [`AssetWriter`](crate::io::AssetWriter) does not exist for a given id.
#[derive(Error, Debug, Clone)]
#[error("Asset Source '{0}' does not have an AssetWriter.")]
pub struct MissingAssetWriterError(AssetSourceId<'static>);

/// An error returned when a processed [`AssetReader`](crate::io::AssetReader) does not exist for a given id.
#[derive(Error, Debug, Clone, PartialEq, Eq)]
#[error("Asset Source '{0}' does not have a processed AssetReader.")]
pub struct MissingProcessedAssetReaderError(AssetSourceId<'static>);

/// An error returned when a processed [`AssetWriter`](crate::io::AssetWriter) does not exist for a given id.
#[derive(Error, Debug, Clone)]
#[error("Asset Source '{0}' does not have a processed AssetWriter.")]
pub struct MissingProcessedAssetWriterError(AssetSourceId<'static>);

const MISSING_DEFAULT_SOURCE: &str =

View on GitHub (pinned to 396ca72708)

Solutions

  1. Register the asset source with AssetPlugin::file_sources / source builders before using its id in paths
  2. Check the source name in the asset path for typos (the part before ://)
  3. Ensure the source is added on the same side (unprocessed/processed) the code is using
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/bevy_asset/src/io/source.rs:652 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/79a4fad4ab630042. Report an issue: GitHub.