{"record":{"id":"ae4aa39811444016","repo":"github/spec-kit","slug":"failed-to-delete-catalog-config-config-path-ex","errorCode":null,"errorMessage":"Failed to delete catalog config {config_path}: {exc}","messagePattern":"Failed to delete catalog config (.+?): (.+?)","errorType":"validation","errorClass":"IntegrationValidationError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/integrations/catalog.py","lineNumber":620,"sourceCode":"                    data,\n                    f,\n                    default_flow_style=False,\n                    sort_keys=False,\n                    allow_unicode=True,\n                )\n        else:\n            # Removing the final entry: delete the config file rather than\n            # leaving behind an empty `catalogs:` list. `_load_catalog_config`\n            # treats an empty list as an error, so leaving the file would\n            # break every subsequent `integration` command until the user\n            # manually deletes `.specify/integration-catalogs.yml`.\n            # Deleting the file lets the project fall back to built-in\n            # defaults, which matches the behavior before any\n            # `catalog add` was ever run.\n            try:\n                config_path.unlink(missing_ok=True)\n            except OSError as exc:\n                raise IntegrationValidationError(\n                    f\"Failed to delete catalog config {config_path}: {exc}\"\n                ) from exc\n\n        fallback_name = f\"catalog-{index + 1}\"\n        if isinstance(removed, dict):\n            removed_name = removed.get(\"name\")\n            if removed_name is not None:\n                normalized_name = str(removed_name).strip()\n                if normalized_name:\n                    return normalized_name\n\n            removed_url = removed.get(\"url\")\n            if removed_url is not None:\n                normalized_url = str(removed_url).strip()\n                if normalized_url:\n                    return normalized_url\n        return fallback_name\n","sourceCodeStart":602,"sourceCodeEnd":638,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/integrations/catalog.py#L602-L638","documentation":"Error \"Failed to delete catalog config {config_path}: {exc}\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/integrations/catalog.py:620 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix permissions on the catalog config file and retry the delete."],"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-15T22:17:37.221Z"}