bk build view --recursive reports failures across triggered builds
Introduced 2026-10-08 · score 0.98
HOW TO USE IT
When diagnosing a build that may have failed in a triggered child, run `bk build view <build> --recursive --json` to retrieve current hard-failed and timed-out command jobs from the build and its reachable descendants. Review `complete` and `issues`; incomplete traversal returns partial results and a nonzero exit status.
bk build view acme/my-pipeline/123 --recursive --jsonWHY THIS HELPS
When diagnosing a build that may have failed in a triggered child, inspect command failures across the root build and its reachable descendants.
BEFORE THIS CHANGE
Run `bk build view` on each child build separately to find underlying failures.
REQUIREMENTS AND LIMITATIONS
- Version: v3.61.0
- <build> (required): Build to inspect, in `org/pipeline/number` form.
- --recursive (required): Follow available child references and return current hard-failed (`failed`) and timed-out (`timed_out`) command jobs from the selected build and descendants. Cannot be combined with `--summary`, `--web`, or `--job-states`.
- --json: Output JSON; JSON/YAML output contains `root_build`, `complete`, `failures`, and `issues`. `--json`, `--yaml`, and `--text` are alternative output formats.
- read_builds (required): Token scope required for build access; pipeline read permission is also required.
- read_build_logs: Required to follow log pointers separately.
- Prerequisite: Authenticate the CLI with Buildkite; its README gives `bk auth login`. Build access requires `read_builds` and permission to read each pipeline.
- Prerequisite: Use `read_build_logs` to follow log pointers separately.
- Follows every available child reference, including passed, asynchronous, and soft-failed triggers, without filtering by build state.
- Excludes superseded retry attempts and children of superseded trigger attempts.
- Reports current hard-failed and timed-out command jobs; soft-failed command jobs, canceled or expired jobs, configuration-excluded (`broken`) jobs, jobs stopped by failed dependencies, and running jobs that have promised failure are excluded.
- Uses the existing REST API and fetches each reachable build once; it does not download logs, artifacts, or annotations.
- Requires `read_builds` and permission to read each pipeline. Following log pointers separately requires `read_build_logs`.
- Inaccessible children, invalid child references, missing or not-yet-created child builds (except skipped or configuration-excluded triggers), and request failures produce partial output with `complete: false`, explanatory `issues`, and a nonzero exit status; accessible sibling failures are still returned.
- `complete` describes traversal of observed current attempts, not an atomic snapshot or a guarantee that running builds have finished.
- Builds created by scripts or API calls without a trigger-job link cannot be discovered.
- Docs conflict: Current CLI reference page documents `bk build view` formats but does not list `--recursive`; the v3.61.0 README documents `--recursive`.
FIRST-PARTY EVIDENCE
- https://github.com/buildkite/cli/releases/tag/v3.61.0
- https://github.com/buildkite/cli/pull/1023
- https://github.com/buildkite/cli/blob/v3.61.0/README.md
Check the installed version and the source before using it. Entry JSON