github/spec-kit · error · ExtensionError
Extension '{manifest.id}' is already installed. Use 'specify
Error message
Extension '{manifest.id}' is already installed. Use 'specify extension remove {manifest.id}' first, or retry with --force to overwrite. What it means
Error "Extension '{manifest.id}' is already installed. Use 'specify extension remove {manifest.id}' first, or retry with --force to overwrite." thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/__init__.py:2089
Raises:
ValidationError: If manifest is invalid or priority is invalid
CompatibilityError: If extension is incompatible
"""
# Validate priority
if priority < 1:
raise ValidationError("Priority must be a positive integer (1 or higher)")
# Load and validate manifest
manifest_path = source_dir / "extension.yml"
manifest = ExtensionManifest(manifest_path)
# Check compatibility
self.check_compatibility(manifest, speckit_version)
# Check if already installed
if self.registry.is_installed(manifest.id):
if not force:
raise ExtensionError(
f"Extension '{manifest.id}' is already installed. "
f"Use 'specify extension remove {manifest.id}' first, "
f"or retry with --force to overwrite."
)
# Reject manifests that would shadow core commands or installed extensions.
self._validate_install_conflicts(manifest)
# Refuse to install an extension from its own install destination — with
# --force this would delete the source before copying it (issue #2990).
dest_dir = self.extensions_dir / manifest.id
try:
same_location = source_dir.resolve(strict=False) == dest_dir.resolve(
strict=False
)
except (OSError, RuntimeError):
same_location = source_dir.absolute() == dest_dir.absolute()
if same_location:View on GitHub (pinned to bf88c9f9a8)
Solutions
- Run 'specify extension remove <id>' first, or retry the install with --force to overwrite.
When it happens
Trigger: Thrown at src/specify_cli/extensions/__init__.py:2089 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/9e55ce233bedfb15.
Report an issue: GitHub.