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.id

View on GitHub (pinned to bf88c9f9a8)

Solutions

  1. 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.