{
  "slug": "bk-build-step-uploads-lists-dynamic-step-upload-outcomes-6b24c55dcd5c",
  "title": "bk build step-uploads lists dynamic step upload outcomes",
  "tools": [
    "bk"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-10-20T22:17:17.000Z",
  "announced_at": "2026-10-20T22:17:17.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When investigating dynamic pipeline upload outcomes for a Buildkite build, run `bk build step-uploads` with its build number, qualified selector, or URL. Inspect each upload’s state, source job, created job count, and rejection or outcome message; for more diagnostics, check the source job’s pipeline upload command output.",
    "examples": [
      "bk build step-uploads 123 --pipeline my-pipeline --json",
      "bk build step-uploads acme/my-pipeline/123 --text",
      "bk build step-uploads https://buildkite.com/acme/my-pipeline/builds/123 --yaml"
    ],
    "gotchas": [
      "Version: v3.64.2",
      "build number (positional) (required): Build number, org/pipeline/number selector, or Buildkite build URL.",
      "--pipeline: Pipeline slug or org/pipeline; inferred from configuration or repository if omitted. Specify when inference is ambiguous, since JSON/YAML does not prompt.",
      "--json: Select JSON output format.",
      "--text: Select text output format.",
      "--yaml: Select YAML output format.",
      "Prerequisite: The token requires the `read_builds` scope.",
      "Prerequisite: Install the CLI and authenticate with `bk auth login` before use.",
      "Requires the `read_builds` token scope.",
      "JSON/YAML never prompts for pipeline selection; specify `--pipeline` when inference is ambiguous.",
      "All cursor pages are fetched, newest first.",
      "Uploaded definitions are not fetched.",
      "Rejection and failure messages exclude uploaded configuration and internal failure details.",
      "The API retains uploads only within the build's maximum lifetime, up to 30 days after creation; older builds return a `410 Gone` error rather than an empty result.",
      "Other API errors fail the command without partial results."
    ]
  },
  "why_it_matters": "Investigate dynamic pipeline upload outcomes for a Buildkite build.",
  "before": "Use raw API requests to inspect dynamic pipeline upload failures.",
  "sources": [
    "https://github.com/buildkite/cli/releases/tag/v3.64.2",
    "https://github.com/buildkite/cli/pull/1050",
    "https://raw.githubusercontent.com/buildkite/cli/v3.64.2/README.md",
    "https://raw.githubusercontent.com/buildkite/cli/v3.64.2/cmd/build/step_uploads.go"
  ],
  "rank": 0.9703,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261026-04",
    "verdict_id": "daily-20261026-04:daily-20261026-04-c6a48706f49c7374-3:gate",
    "evidence_hash": "9514c8805d925d463a66cf298230f5dfd0eaa11dd8da5d6a620f1a3220b0782b"
  },
  "review": {
    "draft_hash": "0c73aa358a09c0d8ead3e2093ada37c241deed976678342b3c62b1ffb6b27b9d",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-20T22:17:17.000Z",
    "decision": "daily-20261026-04:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.80 (>= 0.6 needed)."
  }
}
