{"record":{"id":"6ba65f75a6f1ab07","repo":"github/spec-kit","slug":"no-catalog-config-file-found","errorCode":null,"errorMessage":"No catalog config file found.","messagePattern":"No catalog config file found\\.","errorType":"validation","errorClass":"IntegrationValidationError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/integrations/catalog.py","lineNumber":521,"sourceCode":"                allow_unicode=True,\n            )\n\n    def remove_catalog(self, index: int) -> str:\n        \"\"\"Remove a catalog source by 0-based index.\n\n        ``index`` is interpreted in the same display order shown by\n        ``integration catalog list`` (i.e. sorted ascending by priority,\n        with missing priority defaulting to ``yaml_index + 1``, matching\n        ``_load_catalog_config()``). This way, the index a user sees in\n        ``catalog list`` is the index they pass to ``catalog remove``,\n        even if the underlying YAML lists entries in a different order\n        from how they sort by priority.\n\n        Returns the removed catalog's name.\n        \"\"\"\n        config_path = self.project_root / \".specify\" / self.CONFIG_FILENAME\n        if not config_path.exists():\n            raise IntegrationValidationError(\"No catalog config file found.\")\n\n        try:\n            data = yaml.safe_load(config_path.read_text(encoding=\"utf-8\"))\n        except (yaml.YAMLError, OSError, UnicodeError) as exc:\n            raise IntegrationValidationError(\n                f\"Failed to read catalog config {config_path}: {exc}\"\n            ) from exc\n        if data is None:\n            data = {}\n        if not isinstance(data, dict):\n            raise IntegrationValidationError(\n                f\"Catalog config file {config_path} is corrupted \"\n                \"(expected a mapping).\"\n            )\n\n        catalogs = data.get(\"catalogs\", [])\n        if not isinstance(catalogs, list):\n            raise IntegrationValidationError(","sourceCodeStart":503,"sourceCodeEnd":539,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/integrations/catalog.py#L503-L539","documentation":"Error \"No catalog config file found.\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/integrations/catalog.py:521 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add a catalog first ('specify integration catalog add <url>') so a config file exists."],"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"}