quickwit-oss/quickwit · error

`{}` not found in storage

Error message

`{}` not found in storage

What it means

`check_connectivity` on the bundle storage verifies that the underlying bundle file actually exists in the backing storage before further operations. If `storage.exists(bundle_filepath)` returns false (or errors, mapped to false), the check bails with the display path in the message. It is an existence precondition, not a permission or read failure.

Source

Thrown at quickwit/quickwit-storage/src/bundle_storage.rs:478

        self.files.get(path).cloned()
    }

    /// Returns whether the bundle contains a file at the given path.
    pub fn exists(&self, path: &Path) -> bool {
        self.files.contains_key(path)
    }
}

#[async_trait]
impl Storage for BundleStorage {
    async fn check_connectivity(&self) -> anyhow::Result<()> {
        if !self
            .storage
            .exists(&self.bundle_filepath)
            .await
            .unwrap_or(false)
        {
            bail!("`{}` not found in storage", self.bundle_filepath.display())
        }
        Ok(())
    }

    async fn put(
        &self,
        path: &Path,
        _payload: Box<dyn crate::PutPayload>,
    ) -> crate::StorageResult<()> {
        Err(unsupported_operation(&[path]))
    }

    async fn copy_to(
        &self,
        path: &Path,
        output: &mut dyn SendableAsync,
    ) -> crate::StorageResult<()> {
        let file_len = self.file_num_bytes(path).await? as usize;

View on GitHub (pinned to a39730c5cd)

Solutions

  1. Verify the storage URI/bucket and prefix in the index config actually contain the bundle file.
  2. Check whether the split was deleted (retention policy, GC) and remove stale references or restore the object.
  3. Confirm credentials/permissions so `exists` isn't failing silently (exists errors are swallowed to false here).

Example fix

// before
let storage = StorageResolver::uri("s3://wrong-bucket/")?;
// after
let storage = StorageResolver::uri("s3://quickwit-bucket/indexes/my-index/")?;
Defensive patterns

Strategy: validation

Validate before calling

if !storage.exists(&bundle_filepath).await? {
    return Err(anyhow!("bundle {} missing; fix storage uri or restore object", bundle_filepath.display()));
}

Prevention

When it happens

Trigger: Any operation that constructs a BundleStorage over a `.bundle` filepath not present in the configured storage (wrong index/uri, deleted split, bucket misconfiguration) and then runs connectivity checks.

Common situations: Pointing quickwit at a wrong S3 bucket/prefix; split deleted by retention while still referenced; typo in the storage URI; object removed by a concurrent process.

Understand the failure class

Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.

Related errors


AI-assisted analysis of quickwit-oss/quickwit@a39730c5cd (2026-09-08). Data as JSON: /api/errors/6b7cae7ee1cb9856. Report an issue: GitHub.