github/spec-kit · error · ValueError
Invalid extension manifest in downloaded archive: expected '
Error message
Invalid extension manifest in downloaded archive: expected 'extension' mapping
What it means
Error "Invalid extension manifest in downloaded archive: expected 'extension' mapping" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/_commands.py:1985
manifest_root / "extension.yml",
)
if not manifest_path.is_file():
raise ValueError(
"Downloaded extension archive is missing 'extension.yml'"
)
manifest_bytes = manifest_path.read_bytes()
parsed_manifest = yaml.safe_load(manifest_bytes)
manifest_data = (
parsed_manifest if parsed_manifest is not None else {}
)
if not isinstance(manifest_data, dict):
raise ValueError(
"Invalid extension manifest in downloaded archive: "
"expected YAML mapping"
)
extension_data = manifest_data.get("extension", {})
if not isinstance(extension_data, dict):
raise ValueError(
"Invalid extension manifest in downloaded archive: "
"expected 'extension' mapping"
)
# Run the same manifest and compatibility validation as a
# normal install while the existing extension is still
# untouched. Reuse the exact bounded bytes selected above.
with tempfile.TemporaryDirectory(
prefix="speckit-update-manifest-"
) as manifest_tmpdir:
manifest_file = Path(manifest_tmpdir) / "extension.yml"
manifest_file.write_bytes(manifest_bytes)
preflight_manifest = ExtensionManifest(manifest_file)
manager.check_compatibility(
preflight_manifest, speckit_version
)
zip_extension_id = preflight_manifest.idView on GitHub (pinned to bf88c9f9a8)
Solutions
- Add the required 'extension' mapping to the manifest inside the archive.
When it happens
Trigger: Thrown at src/specify_cli/extensions/_commands.py:1985 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of github/spec-kit@bf88c9f9a8 (2026-08-14).
Data as JSON: /api/errors/74971560d6ba113b.
Report an issue: GitHub.