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

  1. Upgrade (or downgrade) the astrid tooling to the version that wrote the installed authority receipt
  2. Delete the receipt and reinstall the capsule so a schema-1 receipt is written
  3. 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

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


AI-assisted analysis of astrid-runtime/astrid@affd8760f4 (2026-09-09). Data as JSON: /api/errors/3190c8dc4f8cd86e. Report an issue: GitHub.