astrid-runtime/astrid · error
unsupported installed authority schema {}
Error message
unsupported installed authority schema {} What it means
verify_installed_authority_inner only supports installed authority receipts with schema_version 1. A receipt written by a different (newer or legacy) version of the tooling cannot be validated, so verification bails instead of guessing semantics. This keeps verification strict across schema migrations.
Source
Thrown at crates/astrid-capsule-install/src/authority.rs:551
let migrated = InstalledAuthority {
schema_version: 1,
source: AuthoritySource::LegacyMigration,
capsule_id: manifest.package.name.clone(),
version: manifest.package.version.clone(),
content_digest: hasher.finalize().to_hex().to_string(),
manifest_digest: current_manifest_digest,
signer: None,
signature: None,
approved_capabilities: manifest.capabilities.clone(),
wasm_hash_pinned: true,
approved_wasm_hash: executable_hash,
};
AuthorityReceiptTransaction::stage(home, target_dir, &migrated)?.commit()?;
return Ok(());
};
let mut authority = authority;
if authority.schema_version != 1 {
bail!(
"unsupported installed authority schema {}",
authority.schema_version
);
}
if authority.capsule_id != manifest.package.name
|| authority.version != manifest.package.version
{
bail!(
"installed capsule identity/version differs from its authority receipt (approved {} {}, found {} {})",
authority.capsule_id,
authority.version,
manifest.package.name,
manifest.package.version
);
}
let expansions = manifest
.capabilities
.expansions_from(&authority.approved_capabilities);View on GitHub (pinned to affd8760f4)
Solutions
- Upgrade (or downgrade) the astrid tooling to the version that wrote the installed authority receipt
- Delete the receipt and reinstall the capsule so a schema-1 receipt is written
- Check the receipt's schema_version field before verifying to detect version skew early
Example fix
// before
verify_installed_authority(&home, &target_dir, &manifest, None)?;
// after
let v = read_authority_schema_version(&home, &target_dir)?;
if v != 1 {
eprintln!("receipt schema {v} unsupported by this tool; reinstall the capsule");
} Defensive patterns
Strategy: validation
Validate before calling
let schema = read_authority_schema_version(&home, &target_dir)?;
if schema != SUPPORTED_AUTHORITY_SCHEMA_VERSION {
return Err(anyhow!("receipt schema {schema} not supported by this tool version"));
} Prevention
- Pin tooling versions across machines that share capsule installs
- Reinstall capsules after upgrading astrid if the receipt schema changed
- Log schema_version when it changes to catch skew early
When it happens
Trigger: Calling verify_installed_authority on a capsule whose installed authority receipt deserialized with schema_version != 1 (e.g. written by a different astrid version).
Common situations: Capsule installed by a newer CLI with an upgraded receipt schema, then verified by an older tool; hand-edited or corrupted receipt file; very old installs predating schema 1 (though those are migrated by the earlier migration arm).
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
Related errors
- cannot remove capsule authority while an install transaction
- an incomplete capsule authority update exists at {}; remove
- installed capsule identity/version differs from its authorit
- manifest exceeds its installed capability approval: {details
- installed Capsule.toml differs from the exact manifest appro
AI-assisted analysis of astrid-runtime/astrid@affd8760f4 (2026-09-09).
Data as JSON: /api/errors/3190c8dc4f8cd86e.
Report an issue: GitHub.