{"record":{"id":"715aa1a02f1acdec","repo":"github/spec-kit","slug":"failed-to-fetch-catalog-from-url-exc","errorCode":null,"errorMessage":"Failed to fetch catalog from {url}: {exc}","messagePattern":"Failed to fetch catalog from (.+?): (.+?)","errorType":"exception","errorClass":"BundlerError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/bundler/services/adapters.py","lineNumber":203,"sourceCode":"\n    try:\n        with open_url(\n            url,\n            timeout=HTTP_TIMEOUT_SECONDS,\n            redirect_validator=_validate_redirect,\n        ) as response:\n            final_url = response.geturl()\n            _validate_remote_url(source_id, final_url)\n            raw = read_response_limited(\n                response,\n                max_bytes=MAX_JSON_CATALOG_BYTES,\n                error_type=BundlerError,\n                label=f\"bundle catalog '{source_id}'\",\n            ).decode(\"utf-8\")\n    except BundlerError:\n        raise\n    except Exception as exc:  # noqa: BLE001\n        raise BundlerError(f\"Failed to fetch catalog from {url}: {exc}\") from exc\n    return loads_json(raw, origin=final_url)\n\n\nclass DefaultPrimitiveInstaller:\n    \"\"\"Dispatch component install/remove to existing primitive machinery.\n\n    This adapter is intentionally thin: it owns no install logic of its own,\n    delegating entirely to the per-primitive managers so the bundler honours\n    Principle I (no duplicated primitive logic).\n\n    *allow_network* mirrors the bundle command's ``--offline`` flag: when False,\n    component kinds that can only be sourced from a remote catalog refuse rather\n    than touching the network. Bundled presets/extensions still install offline.\n    \"\"\"\n\n    def __init__(self, *, allow_network: bool = True) -> None:\n        self._allow_network = allow_network\n","sourceCodeStart":185,"sourceCodeEnd":221,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/bundler/services/adapters.py#L185-L221","documentation":"Error \"Failed to fetch catalog from {url}: {exc}\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/bundler/services/adapters.py:203 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check network connectivity and the catalog URL, verify credentials if the host requires auth, then retry the fetch."],"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"}