Skip to content

Regression in buildkite-agent v3.99.0 with --no-interpolation and step key #3358

@aas47

Description

@aas47

Summary

Starting from Buildkite Agent version 3.99.0, using --no-interpolation with nested pipeline uploads fails when a step defines a key, even though the parent pipeline does not reuse the key itself.

Error

buildkite-agent: fatal: Failed to upload and process pipeline: Pipeline upload rejected: The key "test-key" has already been used by another step in this build

This appears to be a regression, as previous versions allowed such nested uploads without complaint.


🔁 Reproduction Steps

Given the following pipeline structure:

1. Initial pipeline uploaded via UI

steps:
  - label: "testing"
    command:
      - buildkite-agent pipeline upload test-pipeline.yml

2. test-pipeline.yml

steps:
  - label: "testing"
    command: buildkite-agent pipeline upload test-pipeline-uploaded.yml --no-interpolation

3. test-pipeline-uploaded.yml

steps:
  - label: "testing"
    key: "test-key"
    command:
      - echo hello world

This results in the following failure in v3.99.0:

Error Screenshot


✅ Expected Behavior

The nested pipeline upload should succeed as long as no two steps within the same final flattened pipeline reuse the same key. In this case, only one step uses the key: test-key.

This behavior worked in previous versions of the agent, and pipelines depending on this now fail after upgrading to v3.99.0.


📌 Notes

  • The issue only happens when using --no-interpolation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions