{"record":{"id":"72233d918128a851","repo":"github/spec-kit","slug":"extension-resolved-id-is-bundled-with-spec-kit","errorCode":null,"errorMessage":"Extension '{resolved_id}' is bundled with spec-kit but not found in the installed package. Try reinstalling spec-kit: {REINSTALL_COMMAND}","messagePattern":"Extension '(.+?)' is bundled with spec-kit but not found in the installed package\\. Try reinstalling spec-kit: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/commands/init.py","lineNumber":156,"sourceCode":"    ext_info, catalog_error = _resolve_catalog_extension(ext_spec, catalog, \"add\")\n    if catalog_error:\n        raise ValueError(f\"Could not query extension catalog: {catalog_error}\")\n    if not ext_info:\n        raise ValueError(f\"Extension '{ext_spec}' not found in bundled extensions or catalog\")\n\n    resolved_id = ext_info[\"id\"]\n    if resolved_id != ext_spec:\n        bundled_path = _locate_bundled_extension(resolved_id)\n        if bundled_path is not None:\n            if manager.registry.is_installed(resolved_id):\n                return \"already installed\"\n            manifest = manager.install_from_directory(bundled_path, speckit_version)\n            return f\"{manifest.name} v{manifest.version} installed\"\n\n    if ext_info.get(\"bundled\") and not ext_info.get(\"download_url\"):\n        from ..extensions import REINSTALL_COMMAND\n\n        raise ValueError(\n            f\"Extension '{resolved_id}' is bundled with spec-kit but not found in the installed package. \"\n            f\"Try reinstalling spec-kit: {REINSTALL_COMMAND}\"\n        )\n\n    if not ext_info.get(\"_install_allowed\", True):\n        catalog_name = ext_info.get(\"_catalog_name\", \"community\")\n        raise ValueError(\n            f\"Extension '{ext_spec}' is in the '{catalog_name}' catalog but installation is not allowed from that catalog\"\n        )\n\n    zip_path = catalog.download_extension(resolved_id)\n    try:\n        manifest = manager.install_from_zip(zip_path, speckit_version)\n    finally:\n        zip_path.unlink(missing_ok=True)\n    return f\"{manifest.name} v{manifest.version} installed\"\n\n","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/commands/init.py#L138-L174","documentation":"The catalog marks the extension as bundled with Spec Kit and without a download URL, but the extension directory is not present in the currently installed specify-cli package. This points to an incomplete or corrupted CLI installation rather than a bad extension argument.","triggerScenarios":"`specify init --extension <bundled-id>` resolves a bundled catalog entry, but `_locate_bundled_extension()` cannot find the expected directory in the installed package data.","commonSituations":"A partially upgraded pip/pipx/uv installation, package data excluded by a repackaged install, an old layout from an earlier Spec Kit release, or a broken editable/source environment.","solutions":["Run the reinstall command printed in the error: `uv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git`.","If you installed with pip/pipx instead, reinstall/upgrade through that same tool so package data is complete.","Verify the extension is present after reinstall, then rerun `specify init`.","If it still fails in a fresh installation, report the missing bundled extension to Spec Kit."],"exampleFix":"# before\npip install specify-cli\n\n# after\nuv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git","handlingStrategy":"validation","validationCode":"from specify_cli._assets import _locate_bundled_extension\n\ndef bundled_extension_is_available(extension_id: str) -> bool:\n    return _locate_bundled_extension(extension_id) is not None","typeGuard":null,"tryCatchPattern":"try:\n    _install_extension_during_init(project_path, ext_spec, version)\nexcept ValueError as exc:\n    if \"Try reinstalling spec-kit\" in str(exc):\n        run_reinstall_command_and_retry_init()\n    else:\n        raise","preventionTips":["Install specify-cli from supported package channels so bundled extension data is included.","Run a smoke check for required bundled extensions in container/CI images.","Reinstall with one package manager rather than mixing pip, pipx, and uv layouts."],"tags":["init","extensions","installation","bundled","packaging"],"backgroundTag":null,"analyzedSha":"bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c","analyzedAt":"2026-08-14T19:43:37.150Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}