github/spec-kit · error · PresetValidationError
Manifest is not valid UTF-8: {path} ({e.reason} at byte {e.s
Error message
Manifest is not valid UTF-8: {path} ({e.reason} at byte {e.start}) What it means
Error "Manifest is not valid UTF-8: {path} ({e.reason} at byte {e.start})" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/presets/__init__.py:292
Raises:
PresetValidationError: If manifest is invalid
"""
self.path = manifest_path
self.data = self._load_yaml(manifest_path)
self._validate()
def _load_yaml(self, path: Path) -> dict:
"""Load YAML file safely."""
try:
with open(path, 'r', encoding='utf-8') as f:
data = yaml.safe_load(f)
except yaml.YAMLError as e:
raise PresetValidationError(f"Invalid YAML in {path}: {e}")
except FileNotFoundError:
raise PresetValidationError(f"Manifest not found: {path}")
except UnicodeDecodeError as e:
raise PresetValidationError(
f"Manifest is not valid UTF-8: {path} ({e.reason} at byte {e.start})"
)
except OSError as e:
raise PresetValidationError(f"Could not read manifest {path}: {e}")
if data is None:
return {}
if not isinstance(data, dict):
raise PresetValidationError(
f"Manifest must be a YAML mapping, got {type(data).__name__}: {path}"
)
return data
def _validate(self):
"""Validate manifest structure and required fields."""
# Check required top-level fields
for field in self.REQUIRED_FIELDS:
if field not in self.data:
raise PresetValidationError(f"Missing required field: {field}")View on GitHub (pinned to bf88c9f9a8)
Solutions
- Re-save the preset manifest as UTF-8 text, removing invalid bytes at the reported offset.
When it happens
Trigger: Thrown at src/specify_cli/presets/__init__.py:292 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/90908188082f21c7.
Report an issue: GitHub.