---
name: vllm-project-ci-fails-buildkite
description: "Fetch and diagnose vLLM Buildkite CI failure logs. Use when investigating failing CI jobs on a PR or build, when the user pastes a buildkite.com URL, or asks to fetch/diagnose CI logs."
license: "Apache-2.0"
metadata:
  decimalai-skill-id: "126424f5-af3c-46d1-ba4c-18e314a3394b"
  decimalai-version-id: "f405de90-7679-4b41-86eb-761714e368bd"
  decimalai-version: "1"
  decimalai-body-sha256: "eb8600435a8c30d5fa8ecba21b96d0ff7ac43156b8cfffdfec168891d38f0065"
  decimalai-name: "vllm-project/ci-fails-buildkite"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "devops"
  decimalai-source: "https://app.decimal.ai/s/vllm-project-ci-fails-buildkite@1/SKILL.md"
---
# Diagnosing vLLM Buildkite CI Failures

Buildkite logs are public; no login needed.

`.buildkite/scripts/ci-fetch-log.sh` saves each log as `ci-<build>-<job-name>.log`, stripped of timestamps and ANSI codes. Existing files are kept; set `CI_FETCH_LOG_FORCE=1` to refetch.

## Fetching logs

```bash
# All failed jobs in a PR's latest build (current branch's PR if omitted):
.buildkite/scripts/ci-fetch-log.sh --pr <PR>

# All failed jobs in a build (--soft also includes soft-failed jobs;
# --all fetches every finished job):
.buildkite/scripts/ci-fetch-log.sh "https://buildkite.com/vllm/ci/builds/<N>"

# One job — `gh pr checks` URLs (#<job_uuid>) and web UI URLs (?sid=) both
# work; pass "-" as a second argument to stream to stdout:
.buildkite/scripts/ci-fetch-log.sh "https://buildkite.com/vllm/ci/builds/<N>#<job_uuid>"
```

To clean an already-downloaded log with `.buildkite/scripts/ci-clean-log.sh`:

```bash
./ci-clean-log.sh ci.log
```

## Reference

See [docs/contributing/ci/failures.md](../../../docs/contributing/ci/failures.md) for the full guide: filing CI failure issues, investigating/bisecting, reproducing flaky tests, and daily triage.
