{"record":{"id":"1d0baa30224db77b","repo":"theonedev/onedev","slug":"no-common-base-for-source-and-target-branches","errorCode":null,"errorMessage":"No common base for source and target branches","messagePattern":"No common base for source and target branches","errorType":"http","errorClass":"NotAcceptableException","httpStatus":406,"severity":"error","filePath":"server-core/src/main/java/io/onedev/server/ai/TodResource.java","lineNumber":1144,"sourceCode":"        var mergeStrategy = getMergeStrategy(target.getProject(), mergeStrategyName);\n\n        var request = pullRequestService.findOpen(target, source);\n        if (request != null)\n            return PullRequestHelper.getDetail(currentProject, request);        \n\n        request = new PullRequest();\n        request.setTarget(target);\n        request.setSource(source);\n        request.setSubmitter(submitter);\n        request.setMergeStrategy(mergeStrategy);\n\n        // Pre-populate baseCommitHash + initial update so title/description can\n        // be generated from commits below; openNew(...) will keep them as-is.\n        ObjectId baseCommitId = gitService.getMergeBase(\n                target.getProject(), target.getObjectId(),\n                source.getProject(), source.getObjectId());\n        if (baseCommitId == null)\n            throw new NotAcceptableException(\"No common base for source and target branches\");\n        request.setBaseCommitHash(baseCommitId.name());\n\n        PullRequestUpdate update = new PullRequestUpdate();\n        update.setRequest(request);\n        update.setHeadCommitHash(source.getObjectName());\n        update.setTargetHeadCommitHash(target.getObjectName());\n        request.getUpdates().add(update);\n\n        var title = (String) data.remove(\"title\");\n        if (title == null)\n            throw new NotAcceptableException(\"Title is required\");\n\n        request.setTitle(title);\n\n        var description = (String) data.remove(\"description\");\n        if (description != null)\n            request.setDescription(description);\n","sourceCodeStart":1126,"sourceCodeEnd":1162,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-core/src/main/java/io/onedev/server/ai/TodResource.java#L1126-L1162","documentation":"During pull request creation, git merge-base between the target and source branch heads returned null, meaning the branches share no common ancestor commit; a mergeable pull request cannot be computed.","triggerScenarios":"Thrown at server-core/src/main/java/io/onedev/server/ai/TodResource.java:1144 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the source branch was created from the target repository history (or a branch sharing history with target).","Push a proper source branch instead of an unrelated/orphan one."],"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-14T00:17:10.932Z"}