{"record":{"id":"920de277f7fd72a3","repo":"theonedev/onedev","slug":"iteration-iterationname-not-found","errorCode":null,"errorMessage":"Iteration '${iterationName}' not found","messagePattern":"Iteration '(.+?)' not found","errorType":"exception","errorClass":"ExplicitException","httpStatus":null,"severity":"error","filePath":"server-core/src/main/java/io/onedev/server/ai/IssueHelper.java","lineNumber":303,"sourceCode":"            var subscriptionService = OneDev.getInstance(SubscriptionService.class);\n            if (!subscriptionService.isSubscriptionActive())\n                throw new ExplicitException(\"An active subscription is required for this feature\");\n            if (!project.isTimeTracking())\n                throw new ExplicitException(\"Time tracking needs to be enabled for the project\");\n            if (!SecurityUtils.canScheduleIssues(subject, project))\n                throw new UnauthorizedException(\"Issue schedule permission required to set own estimated time\");\n            issue.setOwnEstimatedTime(ownEstimatedTime * 60);\n        }\n\n        List<String> iterationNames = (List<String>) data.remove(\"iterations\");\n        if (iterationNames != null) {\n            if (!SecurityUtils.canScheduleIssues(subject, project))\n                throw new UnauthorizedException(\"Issue schedule permission required to set iterations\");\n            var iterationService = OneDev.getInstance(IterationService.class);\n            for (var iterationName : iterationNames) {\n                var iteration = iterationService.findInHierarchy(project, iterationName);\n                if (iteration == null)\n                    throw new ExplicitException(\"Iteration '\" + iterationName + \"' not found\");\n                IssueSchedule schedule = new IssueSchedule();\n                schedule.setIssue(issue);\n                schedule.setIteration(iteration);\n                issue.getSchedules().add(schedule);\n            }\n        }\n\n        issue.setProject(project);\n        issue.setSubmitDate(new Date());\n        issue.setSubmitter(SecurityUtils.getUser(subject));\n        issue.setState(issueSetting.getInitialStateSpec().getName());\n\n        issue.setFieldValues(FieldUtils.getFieldValues(subject, project, data));\n\n        OneDev.getInstance(IssueService.class).open(issue);\n        return issue;\n    }\n","sourceCodeStart":285,"sourceCodeEnd":321,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-core/src/main/java/io/onedev/server/ai/IssueHelper.java#L285-L321","documentation":"For each name in the \"iterations\" list, createIssue resolves an iteration via IterationService.findInHierarchy(project, iterationName); when no matching iteration exists it throws this ExplicitException naming the missing iteration.","triggerScenarios":"The \"iterations\" list contains a name that does not match any iteration in the project or its parent hierarchy at creation time.","commonSituations":"Iteration renamed/closed before the automation ran; typo or case mismatch in the iteration name; iteration belongs to a different project branch of the hierarchy; AI tool hallucinating iteration names.","solutions":["Check Project > Iterations for exact iteration names and correct the payload (names are matched within the project hierarchy)","Create the missing iteration before running the issue-creation call","List the project's iterations first (via API) and pick valid names"],"exampleFix":"// before\ndata.put(\"iterations\", List.of(\"sprint 12\")); // case mismatch\n// after\ndata.put(\"iterations\", List.of(\"Sprint 12\")); // exact name from project iterations","handlingStrategy":"validation","validationCode":"// before createIssue, verify iteration names resolve\nfor (String name : (List<String>) data.getOrDefault(\"iterations\", List.of()))\n    if (OneDev.getInstance(IterationService.class).findInHierarchy(project, name) == null)\n        throw new IllegalArgumentException(\"Unknown iteration: \" + name);","typeGuard":null,"tryCatchPattern":"try {\n    issueHelper.createIssue(project, subject, data);\n} catch (ExplicitException e) {\n    if (e.getMessage().startsWith(\"Iteration '\") && e.getMessage().endsWith(\"' not found\")) {\n        // refresh iteration list and correct the name\n    }\n}","preventionTips":["Fetch exact iteration names from the project before referencing them","Create/reopen iterations before scheduling issues into them","Don't trust model-generated iteration names — validate against the project hierarchy"],"tags":["iterations","issues","lookup-failed"],"backgroundTag":"entity-not-found","analyzedSha":"d44925c47c37992c828ea673a5f9620539bc3ff2","analyzedAt":"2026-09-06T07:18:27.995Z","contentChangedAt":"2026-09-06T07:18:27.995Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}