theonedev/onedev · error · NotAcceptableException
Invalid merge strategy:
Error message
Invalid merge strategy:
What it means
The merge-strategy lookup in TodResource only accepts the named strategies supported by the project's pull request settings; an unrecognized strategy string is rejected. The message carries the given name.
Source
Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:1094
var pullRequest = getPullRequest(currentProject, pullRequestReference);
var oldCommitId = ObjectId.fromString(pullRequest.getBaseCommitHash());
var newCommitId = ObjectId.fromString(pullRequest.getLatestUpdate().getHeadCommitHash());
var comparisonBase = pullRequestService.getComparisonBase(pullRequest, oldCommitId, newCommitId);
var patchInfo = new HashMap<String, String>();
patchInfo.put("projectId", pullRequest.getProject().getId().toString());
patchInfo.put("oldCommitHash", comparisonBase.name());
patchInfo.put("newCommitHash", newCommitId.name());
return patchInfo;
}
private MergeStrategy getMergeStrategy(Project project, @Nullable String mergeStrategyName) {
if (mergeStrategyName != null) {
try {
return MergeStrategy.valueOf(mergeStrategyName);
} catch (IllegalArgumentException e) {
throw new NotAcceptableException("Invalid merge strategy: " + mergeStrategyName);
}
} else {
return project.findDefaultPullRequestMergeStrategy();
}
}
@Path("/create-pull-request")
@POST
public Map<String, Object> createPullRequest(
@QueryParam("currentProject") @NotNull String currentProjectPath,
@QueryParam("targetProject") String targetProjectPath,
@QueryParam("sourceProject") String sourceProjectPath,
@NotNull Map<String, Serializable> data) {
normalizePullRequestData(data);
var targetBranch = (String) data.remove("targetBranch");
var sourceBranch = (String) data.remove("sourceBranch");View on GitHub (pinned to d44925c47c)
Solutions
- Use one of the valid merge strategy names (merge commit, squash merge, rebase merge, or fast-forward if allowed).
- Omit the strategy to use the project's default.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:1094 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of theonedev/onedev@d44925c47c (2026-09-06).
Data as JSON: /api/errors/a264fff00fe9c796.
Report an issue: GitHub.