jenkinsci/jenkins · error · IllegalArgumentException
No such build #{number}
Error message
No such build #{number} What it means
IllegalArgumentException from set-build-description when job.getBuildByNumber(number) returns null — the given build number does not exist for that job. Thrown before any permission/description logic.
Source
Thrown at core/src/main/java/hudson/cli/SetBuildDescriptionCommand.java:35
public String getShortDescription() {
return Messages.SetBuildDescriptionCommand_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 = "DESCRIPTION", required = true, usage = "Description to be set. '=' to read from stdin.", index = 2)
@SuppressFBWarnings(value = "PA_PUBLIC_PRIMITIVE_ATTRIBUTE", justification = "Preserve API compatibility")
public String description;
@Override
protected int run() throws Exception {
Run run = job.getBuildByNumber(number);
if (run == null)
throw new IllegalArgumentException("No such build #" + number);
run.checkPermission(Run.UPDATE);
if ("=".equals(description)) {
description = IOUtils.toString(stdin);
}
run.setDescription(description);
return 0;
}
}
View on GitHub (pinned to 2e228ff40b)
Solutions
- Confirm the build exists (`job.getBuildByNumber(n)` / the CLI build listing).
- Use `job.getLastBuild().getNumber()` to find a valid number.
- Pick a different job if the number belongs elsewhere.
Defensive patterns
Strategy: validation
Validate before calling
Run r = job.getBuildByNumber(number);
if (r == null) {
throw new IllegalArgumentException("No build #" + number
+ " (last: " + job.getLastBuild() + ")");
} Try / catch
catch (IllegalArgumentException e) { /* build number invalid */ } Prevention
- Resolve builds via getBuildByNumber before mutating them.
- Clamp numbers to the job's existing build range.
When it happens
Trigger: `set-build-description <job> <number> <desc>` where build #<number> was never run, was deleted, or belongs to a different job.
Common situations: Race where the build was deleted between lookup and call; number larger than the last build; wrong job argument.
Related errors
- Build #{number} does not exist
- {} is not parameterized but the -p option was specified.
- '%s' is not a valid parameter.
- '%s' is not a valid parameter. Did you mean %s?
- Cannot resolve the value for the parameter '%s'.
AI-assisted analysis of jenkinsci/jenkins@2e228ff40b (2026-08-14).
Data as JSON: /api/errors/ac5542293057c231.
Report an issue: GitHub.