{"record":{"id":"75a5be4569ced0dc","repo":"github/spec-kit","slug":"specify-a-bundle-id-or-use-all","errorCode":null,"errorMessage":"Specify a bundle id or use --all.","messagePattern":"Specify a bundle id or use --all\\.","errorType":"exception","errorClass":"BundlerError","httpStatus":null,"severity":"warning","filePath":"src/specify_cli/commands/bundle/__init__.py","lineNumber":454,"sourceCode":"    console.print(\n        f\"[green]✓[/green] Installed '{_escape_markup(str(result.bundle_id))}' \"\n        f\"({len(result.installed)} added, {len(result.skipped)} already present).\"\n    )\n\n\n@bundle_app.command(\"update\")\ndef bundle_update(\n    bundle_id: str = typer.Argument(None, help=\"Bundle id, or omit with --all\"),\n    all_bundles: bool = typer.Option(False, \"--all\", help=\"Update every installed bundle\"),\n    integration: str = typer.Option(None, \"--integration\", help=\"Override integration\"),\n    offline: bool = typer.Option(False, \"--offline\", help=\"Do not access the network\"),\n) -> None:\n    \"\"\"Re-resolve and refresh a bundle's components via each primitive's update path.\"\"\"\n    try:\n        project_root = require_project_root()\n        records = load_records(project_root)\n        if not all_bundles and not bundle_id:\n            raise BundlerError(\"Specify a bundle id or use --all.\")\n        targets = (\n            [r.bundle_id for r in records]\n            if all_bundles\n            else [bundle_id]\n        )\n        if not targets:\n            console.print(\"[yellow]No installed bundles to update.[/yellow]\")\n            return\n\n        stack = _build_stack(project_root, offline=offline)\n        from ...bundler.services.adapters import DefaultPrimitiveInstaller\n        from ...bundler.services.installer import install_bundle\n        from ...bundler.services.resolver import resolve_install_plan\n\n        installer = DefaultPrimitiveInstaller(allow_network=not offline)\n        for target in targets:\n            if not any(r.bundle_id == target for r in records):\n                raise BundlerError(f\"Bundle '{target}' is not installed.\")","sourceCodeStart":436,"sourceCodeEnd":472,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/commands/bundle/__init__.py#L436-L472","documentation":"'specify bundle update' requires knowing what to update: it raised BundlerError because neither a positional bundle id nor the --all flag was supplied. It is a pure argument-usage guard, raised after require_project_root() and load_records() succeeded, before any target list is built.","triggerScenarios":"Running 'specify bundle update' with no arguments in an initialized project that has bundle install records.","commonSituations":"Assuming update defaults to 'all installed bundles'; scripting the command without arguments.","solutions":["Pass a bundle id: specify bundle update <bundle-id>.","Or update everything installed: specify bundle update --all."],"exampleFix":"# before\nspecify bundle update\n\n# after\nspecify bundle update my-bundle\n# or\nspecify bundle update --all","handlingStrategy":"validation","validationCode":"if not bundle_id and not all_bundles:\n    raise SystemExit(\"Usage: specify bundle update <id> | --all\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always pass either a bundle id or --all to bundle update.","In scripts, assert the argument list is non-empty before invoking the CLI."],"tags":["bundler","cli","usage","arguments"],"backgroundTag":null,"analyzedSha":"bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c","analyzedAt":"2026-08-14T19:43:37.150Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}