{"record":{"id":"ac5542293057c231","repo":"jenkinsci/jenkins","slug":"no-such-build-number","errorCode":null,"errorMessage":"No such build #{number}","messagePattern":"No such build #(.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/hudson/cli/SetBuildDescriptionCommand.java","lineNumber":35,"sourceCode":"    public String getShortDescription() {\n        return Messages.SetBuildDescriptionCommand_ShortDescription();\n     }\n\n    @Argument(metaVar = \"JOB\", usage = \"Name of the job to build\", required = true, index = 0)\n    public transient Job<?, ?> job;\n\n    @Argument(metaVar = \"BUILD#\", usage = \"Number of the build\", required = true, index = 1)\n    public int number;\n\n    @Argument(metaVar = \"DESCRIPTION\", required = true, usage = \"Description to be set. '=' to read from stdin.\", index = 2)\n    @SuppressFBWarnings(value = \"PA_PUBLIC_PRIMITIVE_ATTRIBUTE\", justification = \"Preserve API compatibility\")\n    public String description;\n\n    @Override\n    protected int run() throws Exception {\n        Run run = job.getBuildByNumber(number);\n        if (run == null)\n            throw new IllegalArgumentException(\"No such build #\" + number);\n\n        run.checkPermission(Run.UPDATE);\n\n        if (\"=\".equals(description)) {\n            description = IOUtils.toString(stdin);\n        }\n\n        run.setDescription(description);\n\n        return 0;\n    }\n\n}\n","sourceCodeStart":17,"sourceCodeEnd":49,"githubUrl":"https://github.com/jenkinsci/jenkins/blob/2e228ff40b14dbc8b14ffbc6edf0e4383cf744fc/core/src/main/java/hudson/cli/SetBuildDescriptionCommand.java#L17-L49","documentation":"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.","triggerScenarios":"`set-build-description <job> <number> <desc>` where build #<number> was never run, was deleted, or belongs to a different job.","commonSituations":"Race where the build was deleted between lookup and call; number larger than the last build; wrong job argument.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"Run r = job.getBuildByNumber(number);\nif (r == null) {\n    throw new IllegalArgumentException(\"No build #\" + number\n        + \" (last: \" + job.getLastBuild() + \")\");\n}","typeGuard":null,"tryCatchPattern":"catch (IllegalArgumentException e) { /* build number invalid */ }","preventionTips":["Resolve builds via getBuildByNumber before mutating them.","Clamp numbers to the job's existing build range."],"tags":["cli","build","not-found"],"backgroundTag":null,"analyzedSha":"2e228ff40b14dbc8b14ffbc6edf0e4383cf744fc","analyzedAt":"2026-08-14T07:07:15.274Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}