github/spec-kit · error · SymlinkedSharedPathError
Refusing to use symlinked shared infrastructure directory: {
Error message
Refusing to use symlinked shared infrastructure directory: {label} What it means
Error "Refusing to use symlinked shared infrastructure directory: {label}" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/shared_infra.py:225
if current.is_symlink():
raise SymlinkedSharedPathError(f"Refusing to use symlinked {context}: {label}")
try:
current.resolve().relative_to(root)
except (OSError, ValueError):
raise ValueError(f"{context.capitalize()} escapes project root: {label}") from None
def _validate_safe_shared_directory(project_path: Path, directory: Path) -> None:
"""Validate existing directory parents while allowing missing directories."""
root = project_path.resolve()
rel = _shared_relative_path(project_path, directory)
current = project_path
for part in rel.parts:
current = current / part
label = _shared_destination_label(project_path, current)
if current.is_symlink():
raise SymlinkedSharedPathError(f"Refusing to use symlinked shared infrastructure directory: {label}")
if not current.exists():
continue
if not current.is_dir():
raise ValueError(f"Shared infrastructure directory path is not a directory: {label}")
try:
current.resolve().relative_to(root)
except (OSError, ValueError):
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()View on GitHub (pinned to bf88c9f9a8)
Solutions
- Replace the symlinked shared infrastructure directory with a real directory.
When it happens
Trigger: Thrown at src/specify_cli/shared_infra.py:225 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/e839afd9e01f937d.
Report an issue: GitHub.