github/spec-kit · error · ValueError
Downloaded extension archive contains multiple extension.yml
Error message
Downloaded extension archive contains multiple extension.yml manifests
What it means
Error "Downloaded extension archive contains multiple extension.yml manifests" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/_commands.py:1910
# 5. Download new version
archive_path = catalog.download_extension(extension_id)
try:
# 6. Validate the archive and extension ID before modifying
# the existing installation. The shared extractor applies
# the same bounded security checks to ZIP and tar archives.
with tempfile.TemporaryDirectory(
prefix="speckit-update-archive-"
) as archive_tmpdir:
extracted_root = Path(archive_tmpdir)
try:
safe_extract_archive(archive_path, extracted_root)
except ValueError as exc:
if (
"Conflicting path" in str(exc)
and "extension.yml" in str(exc).casefold()
):
raise ValueError(
"Downloaded extension archive contains multiple "
"extension.yml manifests"
) from exc
raise
manifest_root = extracted_root
top_level = list(extracted_root.iterdir())
root_manifest_entries = [
entry
for entry in top_level
if entry.name.casefold() == "extension.yml"
]
if any(
entry.name != "extension.yml"
for entry in root_manifest_entries
):
raise ValueError(
"Archive must use canonical 'extension.yml' casing"
)View on GitHub (pinned to bf88c9f9a8)
Solutions
- Fix the extension archive so it contains exactly one extension.yml manifest.
When it happens
Trigger: Thrown at src/specify_cli/extensions/_commands.py:1910 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/bf0079566f91b7fb.
Report an issue: GitHub.