{"record":{"id":"287b7fe004a94bf8","repo":"theonedev/onedev","slug":"cannot-find-issue-board","errorCode":null,"errorMessage":"Cannot find issue board: ","messagePattern":"Cannot find issue board: ","errorType":"exception","errorClass":"ExplicitException","httpStatus":null,"severity":"error","filePath":"server-core/src/main/java/io/onedev/server/web/page/project/issues/boards/IssueBoardsPage.java","lineNumber":178,"sourceCode":"\t\t}\n\t\tquery = IssueQuery.merge(baseQuery, query);\n\t\tvar sort = new EntitySort();\n\t\tsort.setDirection(EntitySort.Direction.ASCENDING);\n\t\tsort.setField(NAME_BOARD_POSITION);\n\t\tquery.getSorts().add(sort);\n\t\treturn query;\n\t}\n\t\n\tpublic IssueBoardsPage(PageParameters params) {\n\t\tsuper(params);\n\t\t\n\t\tboards = getProject().getHierarchyBoards();\n\t\t\n\t\tString boardName = params.get(PARAM_BOARD).toString();\n\t\tif (StringUtils.isNotBlank(boardName)) {\n\t\t\tboardIndex = BoardSpec.getBoardIndex(boards, boardName);\n\t\t\tif (boardIndex == -1)\n\t\t\t\tthrow new ExplicitException(_T(\"Cannot find issue board: \") + boardName);\n\t\t} else {\n\t\t\tboardIndex = 0;\n\t\t}\n\n\t\tvar iterationParam = params.get(PARAM_ITERATION).toString();\n\t\titerationSelectionModel = new LoadableDetachableModel<>() {\n\t\t\t\n\t\t\tprivate IterationSelection getCurrentIteration() {\n\t\t\t\tif (!getIterations().isEmpty()) {\n\t\t\t\t\tvar iteration = getIterations().iterator().next();\n\t\t\t\t\tif (!iteration.isClosed())\n\t\t\t\t\t\treturn new IterationSelection.Specified(iteration);\n\t\t\t\t}\n\t\t\t\treturn new IterationSelection.Unscheduled();\n\t\t\t}\n\t\t\t\n\t\t\t@Override\n\t\t\tprotected IterationSelection load() {","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-core/src/main/java/io/onedev/server/web/page/project/issues/boards/IssueBoardsPage.java#L160-L196","documentation":"IssueBoardsPage resolves the board by name from the URL parameter. It computes the board index via BoardSpec.getBoardIndex over the project's hierarchy boards; a return value of -1 means no board with that name exists, and the page throws ExplicitException('Cannot find issue board: ' + boardName).","triggerScenarios":"Visiting the issue boards page with PARAM_BOARD set to a name that does not match any board in the project (or its hierarchy), e.g. /~issues?board=OldBoard after the board was renamed/deleted.","commonSituations":"Bookmarked or shared links saved before a board rename; board deleted during housekeeping; URL parameter typed manually with wrong casing/spelling; switching projects where the board name differs.","solutions":["Correct the 'board' URL parameter to an existing board name exactly as shown on the Issues page.","If the board was renamed or deleted, recreate it or update the shared/bookmarked link.","Omit the board parameter to fall back to the project's first board.","Check hierarchy projects: the board must exist in the current project or one of its parents."],"exampleFix":"// before\nGET /projects/app/~issues?board=Sprint%20Backlog%202\n// after\nGET /projects/app/~issues?board=Sprint%20Backlog","handlingStrategy":"validation","validationCode":"List<BoardSpec> boards = project.getHierarchyBoards();\nif (boards.stream().noneMatch(b -> b.getName().equals(boardName))) {\n    throw new IllegalArgumentException(\"Board not found: \" + boardName);\n}","typeGuard":null,"tryCatchPattern":"try {\n    // open issue boards page with board param\n} catch (ExplicitException e) {\n    // fall back to default board (omit board param)\n}","preventionTips":["Update shared/bookmarked links after renaming or deleting boards.","Omit the board parameter to use the default (first) board.","Match board names exactly (case-sensitive) when constructing URLs."],"tags":["onedev","issues","boards","resource-not-found"],"backgroundTag":"record-not-found","analyzedSha":"d44925c47c37992c828ea673a5f9620539bc3ff2","analyzedAt":"2026-09-06T07:18:27.995Z","contentChangedAt":"2026-09-06T07:18:27.995Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}