github/spec-kit · error · SymlinkedSharedPathError
Refusing to overwrite symlinked shared infrastructure path:
Error message
Refusing to overwrite symlinked shared infrastructure path: {label} What it means
Error "Refusing to overwrite symlinked shared infrastructure path: {label}" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/shared_infra.py:251
raise ValueError(f"Shared infrastructure directory escapes project root: {label}") from None
def _ensure_safe_shared_destination(
project_path: Path,
dest: Path,
*,
parent_must_exist: bool = True,
) -> None:
"""Refuse shared infra writes that would escape or follow symlinks."""
root = project_path.resolve()
_shared_relative_path(project_path, dest)
if parent_must_exist:
_ensure_safe_shared_directory(project_path, dest.parent, create=False)
else:
_validate_safe_shared_directory(project_path, dest.parent)
label = _shared_destination_label(project_path, dest)
if dest.is_symlink():
raise SymlinkedSharedPathError(f"Refusing to overwrite symlinked shared infrastructure path: {label}")
if dest.exists():
try:
dest.resolve().relative_to(root)
except (OSError, ValueError):
raise ValueError(f"Shared infrastructure destination escapes project root: {label}") from None
def _write_shared_text(project_path: Path, dest: Path, content: str) -> None:
_write_shared_bytes(project_path, dest, content.encode("utf-8"))
def _write_shared_bytes(
project_path: Path,
dest: Path,
content: bytes,
*,
mode: int = 0o644,View on GitHub (pinned to bf88c9f9a8)
Solutions
- Remove or replace the symlink at the target path before writing.
When it happens
Trigger: Thrown at src/specify_cli/shared_infra.py:251 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/97a199b85294f29c.
Report an issue: GitHub.