BoundaryML/baml · error

Checksum file did not contain an entry for {archive_name}

Error message

Checksum file did not contain an entry for {archive_name}

What it means

parse_release_checksum scans a downloaded SHA256SUMS-style checksum file line by line looking for the entry matching the archive's file name. If no line's name equals archive_name, it bails with this message. It means the checksum file is present but doesn't cover the requested archive.

Source

Thrown at baml_language/crates/baml_release/src/lib.rs:399

        });
    }
    Ok(())
}

pub fn parse_release_checksum(checksum_text: &str, archive_name: &str) -> Result<String> {
    for line in checksum_text.lines() {
        let mut parts = line.split_whitespace();
        let Some(hash) = parts.next() else {
            continue;
        };
        let Some(name) = parts.next() else {
            continue;
        };
        if name == archive_name {
            return validate_sha256(hash);
        }
    }
    anyhow::bail!("Checksum file did not contain an entry for {archive_name}")
}

fn download_bytes(url: &str) -> Result<Vec<u8>, FetchError> {
    let client = reqwest::blocking::Client::builder()
        .connect_timeout(Duration::from_secs(10))
        .timeout(Duration::from_mins(10))
        .user_agent("baml-release/1")
        .build()
        .map_err(|source| FetchError::Network {
            url: url.to_string(),
            source,
        })?;

    let mut last_error = None;
    for attempt in 1..=3 {
        match client.get(url).send() {
            Ok(response) if response.status() == reqwest::StatusCode::NOT_FOUND => {
                return Err(FetchError::ManifestNotFound {

View on GitHub (pinned to bd85ce9dee)

Solutions

  1. Confirm the archive file name exactly matches an entry in the checksum file (check spelling, extension, and target triple).
  2. Download the checksum file from the same release/version as the archive.
  3. Clear any cached checksum file and re-fetch the current release's checksums.
  4. If the artifact genuinely has no checksum entry, report the incomplete release to the publisher.

Example fix

// before
verify("baml-cli-x86_64-unknown-linux-musl.tar.gz", old_checksums) // not listed
// after
verify("baml-cli-x86_64-unknown-linux-gnu.tar.gz", checksums_for_same_release)
Defensive patterns

Strategy: validation

Validate before calling

let present = checksum_text.lines().any(|l| {
    l.split_whitespace().nth(1).map_or(false, |n| n.trim_start_matches('*') == archive_name)
});
if !present { return Err(format!("{archive_name} missing from checksum file")); }

Try / catch

match verify_archive_checksum(bytes, url) {
    Err(e) if e.to_string().contains("did not contain an entry") => re_fetch_matching_checksums(),
    r => r,
}

Prevention

When it happens

Trigger: Calling parse_release_checksum (via verify_release_archive_checksum_text) with an archive_name absent from the checksum text — e.g. wrong file name casing, querying a target artifact not published in that release's checksums, or checksum file from a different release version.

Common situations: Fetching a checksums file for release X but an artifact name from release Y; artifacts renamed between releases while cached checksum file is stale; partial uploads where some targets are missing from SHA256SUMS.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


AI-assisted analysis of BoundaryML/baml@bd85ce9dee (2026-09-12). Data as JSON: /api/errors/ccd9df787d57c264. Report an issue: GitHub.