astrid-runtime/astrid · error
materialized capsule file inventory differs from durable…
Error message
materialized capsule file inventory differs from durable package
What it means
Whole-directory inventory check in verify_published_materialization: the set of files (and their bytes) in the materialized capsule directory differs from the expected inventory (package files plus Capsule.toml, meta.json, authority.json), indicating missing, extra, or modified files.
Solutions
- Re-materialize the capsule from the durable package to rebuild the projection
- Remove extra/unexpected files and re-verify
- Investigate the writer that produced the divergent directory
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/astrid-kernel/src/capsule_materialization.rs:73 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of astrid-runtime/astrid@affd8760f4 (2026-09-09).
Data as JSON: /api/errors/0664207b5d99d1ec.
Report an issue: GitHub.
Appendix: source
Thrown at crates/astrid-kernel/src/capsule_materialization.rs:73
.map(|(path, bytes)| (path.to_owned(), bytes.to_vec()))
.collect::<std::collections::BTreeMap<_, _>>();
expected_files.insert(
"Capsule.toml".to_owned(),
verified.manifest_bytes().to_vec(),
);
expected_files.insert("meta.json".to_owned(), verified.metadata_bytes().to_vec());
expected_files.insert(
"authority.json".to_owned(),
verified.snapshot().package().authority.clone(),
);
let actual = Self::inventory_projection_files(dir)?;
if actual.files
!= expected_files
.keys()
.cloned()
.collect::<std::collections::BTreeSet<_>>()
{
anyhow::bail!("materialized capsule file inventory differs from durable package");
}
let mut expected_directories = expected_files
.keys()
.flat_map(|relative| authenticated_ancestor_directories(relative))
.collect::<std::collections::BTreeSet<_>>();
let archive_directories = verified
.archive_directories()
.map(ToOwned::to_owned)
.collect::<Vec<_>>();
expected_directories.extend(archive_directories.iter().cloned());
expected_directories.extend(
archive_directories
.iter()
.map(String::as_str)
.flat_map(authenticated_ancestor_directories),
);
if actual.directories != expected_directories {
anyhow::bail!("materialized capsule directory inventory differs from durable package");View on GitHub (pinned to affd8760f4)