{"record":{"id":"f5eaebfae9ec320a","repo":"github/spec-kit","slug":"unable-to-read-descriptor-path-exc","errorCode":null,"errorMessage":"Unable to read descriptor {path}: {exc}","messagePattern":"Unable to read descriptor (.+?): (.+?)","errorType":"validation","errorClass":"IntegrationDescriptorError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/integrations/catalog.py","lineNumber":684,"sourceCode":"\n    def __init__(self, descriptor_path: Path) -> None:\n        self.path = descriptor_path\n        self.data = self._load(descriptor_path)\n        self._validate()\n\n    # -- Loading ----------------------------------------------------------\n\n    @staticmethod\n    def _load(path: Path) -> dict:\n        try:\n            with open(path, \"r\", encoding=\"utf-8\") as fh:\n                return yaml.safe_load(fh) or {}\n        except yaml.YAMLError as exc:\n            raise IntegrationDescriptorError(f\"Invalid YAML in {path}: {exc}\")\n        except FileNotFoundError:\n            raise IntegrationDescriptorError(f\"Descriptor not found: {path}\")\n        except (OSError, UnicodeError) as exc:\n            raise IntegrationDescriptorError(\n                f\"Unable to read descriptor {path}: {exc}\"\n            )\n\n    # -- Validation -------------------------------------------------------\n\n    def _validate(self) -> None:\n        if not isinstance(self.data, dict):\n            raise IntegrationDescriptorError(\n                f\"Descriptor root must be a YAML mapping, got {type(self.data).__name__}\"\n            )\n        for field in self.REQUIRED_TOP_LEVEL:\n            if field not in self.data:\n                raise IntegrationDescriptorError(\n                    f\"Missing required field: {field}\"\n                )\n\n        if self.data[\"schema_version\"] != self.SCHEMA_VERSION:\n            raise IntegrationDescriptorError(","sourceCodeStart":666,"sourceCodeEnd":702,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/integrations/catalog.py#L666-L702","documentation":"Error \"Unable to read descriptor {path}: {exc}\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/integrations/catalog.py:684 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix read permissions on the descriptor file, then retry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c","analyzedAt":"2026-08-14T19:43:37.150Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}