{"record":{"id":"d4d3ac6d4d1f5506","repo":"github/spec-kit","slug":"catalog-config-contains-no-removable-catalog-entri","errorCode":null,"errorMessage":"Catalog config contains no removable catalog entries.","messagePattern":"Catalog config contains no removable catalog entries\\.","errorType":"validation","errorClass":"IntegrationValidationError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/integrations/catalog.py","lineNumber":583,"sourceCode":"            return bool(str(raw_url).strip())\n\n        priority_pairs: List[Tuple[int, int]] = []\n        for yaml_idx, item in enumerate(catalogs):\n            if not _is_removable_catalog_entry(item):\n                continue\n\n            raw_priority = item.get(\"priority\", yaml_idx + 1)\n            if isinstance(raw_priority, bool):\n                priority = yaml_idx + 1\n            else:\n                try:\n                    priority = int(raw_priority)\n                except (TypeError, ValueError, OverflowError):\n                    # OverflowError: int(float(\"inf\")) — a ``priority: .inf``.\n                    priority = yaml_idx + 1\n            priority_pairs.append((priority, yaml_idx))\n        if not priority_pairs:\n            raise IntegrationValidationError(\n                \"Catalog config contains no removable catalog entries.\"\n            )\n        # Stable sort: ties keep their YAML order, matching list-view ordering.\n        priority_pairs.sort(key=lambda p: p[0])\n        display_order: List[int] = [yaml_idx for _, yaml_idx in priority_pairs]\n\n        if index < 0 or index >= len(display_order):\n            raise IntegrationValidationError(\n                f\"Catalog index {index} out of range (0-{len(display_order) - 1}).\"\n            )\n\n        target_yaml_idx = display_order[index]\n        removed = catalogs.pop(target_yaml_idx)\n\n        if any(_is_removable_catalog_entry(item) for item in catalogs):\n            data[\"catalogs\"] = catalogs\n            with open(config_path, \"w\", encoding=\"utf-8\") as f:\n                yaml.dump(","sourceCodeStart":565,"sourceCodeEnd":601,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/integrations/catalog.py#L565-L601","documentation":"Error \"Catalog config contains no removable catalog entries.\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/integrations/catalog.py:583 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Only removable (non-default) catalog entries can be removed; add a custom catalog first."],"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"}