jenkinsci/jenkins · error · IllegalArgumentException

Build #{number} does not exist

Error message

Build #{number} does not exist

What it means

IllegalArgumentException from set-build-display-name when job.getBuildByNumber(number) returns null. Same guard as set-build-description with a differently worded message.

Source

Thrown at core/src/main/java/hudson/cli/SetBuildDisplayNameCommand.java:34

    public String getShortDescription() {
        return Messages.SetBuildDisplayNameCommand_ShortDescription();
    }

    @Argument(metaVar = "JOB", usage = "Name of the job to build", required = true, index = 0)
    public transient Job<?, ?> job;

    @Argument(metaVar = "BUILD#", usage = "Number of the build", required = true, index = 1)
    public int number;

    @Argument(metaVar = "DISPLAYNAME", required = true, usage = "DisplayName to be set. '-' to read from stdin.", index = 2)
    @SuppressFBWarnings(value = "PA_PUBLIC_PRIMITIVE_ATTRIBUTE", justification = "Preserve API compatibility")
    public String displayName;

    @Override
    protected int run() throws Exception {
        Run<?, ?> run = job.getBuildByNumber(number);
        if (run == null) {
            throw new IllegalArgumentException("Build #" + number + " does not exist");
        }
        run.checkPermission(Run.UPDATE);

        if ("-".equals(displayName)) {
            displayName = IOUtils.toString(stdin);
        }

        run.setDisplayName(displayName);

        return 0;
    }
}

View on GitHub (pinned to 2e228ff40b)

Solutions

  1. Verify the build number against the job's build history.
  2. Use the last build number.
  3. Point at the correct job.
Defensive patterns

Strategy: validation

Validate before calling

if (job.getBuildByNumber(number) == null) {
    throw new IllegalArgumentException("Build #" + number + " does not exist");
}

Try / catch

catch (IllegalArgumentException e) { /* build number invalid */ }

Prevention

When it happens

Trigger: `set-build-displayname <job> <number> <name>` where build #<number> does not exist for the job.

Common situations: Build deleted; number too high; wrong job; keep-log rotation removed the build.

Related errors


AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14). Data as JSON: /api/errors/5f53c7de42cfbc3a. Report an issue: GitHub.