{"record":{"id":"a264fff00fe9c796","repo":"theonedev/onedev","slug":"invalid-merge-strategy","errorCode":null,"errorMessage":"Invalid merge strategy: ","messagePattern":"Invalid merge strategy: ","errorType":"http","errorClass":"NotAcceptableException","httpStatus":406,"severity":"error","filePath":"server-core/src/main/java/io/onedev/server/ai/TodResource.java","lineNumber":1094,"sourceCode":"        var pullRequest = getPullRequest(currentProject, pullRequestReference);\n\n        var oldCommitId = ObjectId.fromString(pullRequest.getBaseCommitHash());\n        var newCommitId = ObjectId.fromString(pullRequest.getLatestUpdate().getHeadCommitHash());\n        var comparisonBase = pullRequestService.getComparisonBase(pullRequest, oldCommitId, newCommitId);\n\n        var patchInfo = new HashMap<String, String>();\n        patchInfo.put(\"projectId\", pullRequest.getProject().getId().toString());\n        patchInfo.put(\"oldCommitHash\", comparisonBase.name());\n        patchInfo.put(\"newCommitHash\", newCommitId.name());        \n        return patchInfo;\n    }\n\n    private MergeStrategy getMergeStrategy(Project project, @Nullable String mergeStrategyName) {\n        if (mergeStrategyName != null) {\n            try {\n                return MergeStrategy.valueOf(mergeStrategyName);\n            } catch (IllegalArgumentException e) {\n                throw new NotAcceptableException(\"Invalid merge strategy: \" + mergeStrategyName);\n            }\n        } else {\n            return project.findDefaultPullRequestMergeStrategy();\n        }\n    }\n\n    @Path(\"/create-pull-request\")\n    @POST\n    public Map<String, Object> createPullRequest(\n                @QueryParam(\"currentProject\") @NotNull String currentProjectPath, \n                @QueryParam(\"targetProject\") String targetProjectPath,\n                @QueryParam(\"sourceProject\") String sourceProjectPath,\n                @NotNull Map<String, Serializable> data) {\n        normalizePullRequestData(data);\n\n        var targetBranch = (String) data.remove(\"targetBranch\");\n\n        var sourceBranch = (String) data.remove(\"sourceBranch\");","sourceCodeStart":1076,"sourceCodeEnd":1112,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-core/src/main/java/io/onedev/server/ai/TodResource.java#L1076-L1112","documentation":"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.","triggerScenarios":"Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:1094 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}