theonedev/onedev · error · NotAcceptableException

Issue is not in current project

Error message

Issue ${issueReference} is not in current project

What it means

Thrown as NotAcceptableException when creating an issue branch: the resolved issue belongs to a different project than the currentProject parameter. OneDev requires the issue and the target project for the branch to match.

Solutions

  1. Pass the currentProject matching the project the issue actually belongs to.
  2. Use the issue's full reference (e.g., project-1 #12) consistent with currentProject.
  3. Verify the issue's project via issue detail before calling ensure branch.

Example fix

// before
GET ...?currentProject=app&reference=#12   // #12 belongs to 'lib'
// after
GET ...?currentProject=lib&reference=#12
Defensive patterns

Strategy: validation

Validate before calling

if (issue.project.name !== currentProject) {
  throw new Error(`Issue belongs to ${issue.project.name}, not ${currentProject}`);
}

Type guard

function issueInProject(issue, project) {
  return issue.project?.name === project;
}

Try / catch

try {
  await ensureBranch(currentProject, ref);
} catch (e) {
  if (e.status === 406 || /is not in current project/.test(e.message)) {
    // re-resolve the issue's project and retry with the correct currentProject
  } else throw e;
}

Prevention

When it happens

Trigger: Calling the AI tod ensure-branch endpoint with currentProject=A and an issue reference that resolves to an issue in project B.

Common situations: Agent passes the wrong currentProject query parameter; issue reference copied from a different project's board; cross-project issue numbering confusion (issue numbers collide across projects).

Understand the failure class

Background: "Must be a positive integer", "Invalid value", "Unsupported": the invalid-argument-value error family, when a library rejects the value you pass — this error's family across 35 libraries.

Related errors


AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06). Data as JSON: /api/errors/2654acda5353f90e. Report an issue: GitHub.

Appendix: source

Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:701

        var fieldValues = FieldUtils.getFieldValues(subject, issue.getProject(), data);
        issueChangeService.changeState(user, issue, state, fieldValues, transition.getPromptFields(),
                transition.getRemoveFields(), comment);
        return IssueHelper.getDetail(currentProject, issue);
    }

    @Path("/ensure-issue-branch") 
    @POST
    public String ensureIssueBranch(
                @QueryParam("currentProject") @NotNull String currentProjectPath, 
                @QueryParam("reference") @NotNull String issueReference) {
        var subject = SecurityUtils.getSubject();

        var currentProject = getProject(currentProjectPath);
        var issue = getIssue(currentProject, issueReference);

        if (!issue.getProject().equals(currentProject))
            throw new NotAcceptableException("Issue " + issueReference + " is not in current project");

        return issueService.ensureBranch(subject, issue);
    }

    @Path("/link-issues")
    @GET
    public Map<String, Object> linkIssues(
                @QueryParam("currentProject") @NotNull String currentProjectPath, 
                @QueryParam("sourceReference") @NotNull String sourceReference, 
                @QueryParam("linkName") @Nullable String linkName, 
                @QueryParam("targetReference") @NotNull String targetReference) {
        if (SecurityUtils.getUser() == null)
            throw new UnauthenticatedException();

        var currentProject = getProject(currentProjectPath);

        var sourceIssue = getIssue(currentProject, sourceReference);
        var targetIssue = getIssue(currentProject, targetReference);

View on GitHub (pinned to d44925c47c)