{"record":{"id":"3190c8dc4f8cd86e","repo":"astrid-runtime/astrid","slug":"unsupported-installed-authority-schema","errorCode":null,"errorMessage":"unsupported installed authority schema {}","messagePattern":"unsupported installed authority schema (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/astrid-capsule-install/src/authority.rs","lineNumber":551,"sourceCode":"        let migrated = InstalledAuthority {\n            schema_version: 1,\n            source: AuthoritySource::LegacyMigration,\n            capsule_id: manifest.package.name.clone(),\n            version: manifest.package.version.clone(),\n            content_digest: hasher.finalize().to_hex().to_string(),\n            manifest_digest: current_manifest_digest,\n            signer: None,\n            signature: None,\n            approved_capabilities: manifest.capabilities.clone(),\n            wasm_hash_pinned: true,\n            approved_wasm_hash: executable_hash,\n        };\n        AuthorityReceiptTransaction::stage(home, target_dir, &migrated)?.commit()?;\n        return Ok(());\n    };\n    let mut authority = authority;\n    if authority.schema_version != 1 {\n        bail!(\n            \"unsupported installed authority schema {}\",\n            authority.schema_version\n        );\n    }\n    if authority.capsule_id != manifest.package.name\n        || authority.version != manifest.package.version\n    {\n        bail!(\n            \"installed capsule identity/version differs from its authority receipt (approved {} {}, found {} {})\",\n            authority.capsule_id,\n            authority.version,\n            manifest.package.name,\n            manifest.package.version\n        );\n    }\n    let expansions = manifest\n        .capabilities\n        .expansions_from(&authority.approved_capabilities);","sourceCodeStart":533,"sourceCodeEnd":569,"githubUrl":"https://github.com/astrid-runtime/astrid/blob/affd8760f44190dbdfbec23403f4c4b642c33112/crates/astrid-capsule-install/src/authority.rs#L533-L569","documentation":"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.","triggerScenarios":"Calling verify_installed_authority on a capsule whose installed authority receipt deserialized with schema_version != 1 (e.g. written by a different astrid version).","commonSituations":"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).","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"],"exampleFix":"// before\nverify_installed_authority(&home, &target_dir, &manifest, None)?;\n// after\nlet v = read_authority_schema_version(&home, &target_dir)?;\nif v != 1 {\n    eprintln!(\"receipt schema {v} unsupported by this tool; reinstall the capsule\");\n}","handlingStrategy":"validation","validationCode":"let schema = read_authority_schema_version(&home, &target_dir)?;\nif schema != SUPPORTED_AUTHORITY_SCHEMA_VERSION {\n    return Err(anyhow!(\"receipt schema {schema} not supported by this tool version\"));\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["capsule","schema-version","compatibility","rust"],"backgroundTag":"schema-validation-failed","analyzedSha":"affd8760f44190dbdfbec23403f4c4b642c33112","analyzedAt":"2026-09-09T21:28:12.402Z","contentChangedAt":"2026-09-09T21:28:12.402Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}