diff --git a/lib/util/http/github.spec.ts b/lib/util/http/github.spec.ts
index 26686ccc9713eb231a348816a3ee24ff5bafb06d..c7868c8f93a0d068c249931020200c502b81a018 100644
--- a/lib/util/http/github.spec.ts
+++ b/lib/util/http/github.spec.ts
@@ -187,6 +187,14 @@ describe(getName(__filename), () => {
           'Review cannot be requested from pull request author.'
         );
       });
+      it('should throw original error when pull requests aleady existed', async () => {
+        await expect(
+          fail(422, {
+            message: 'Validation error',
+            errors: [{ message: 'A pull request already exists' }],
+          })
+        ).rejects.toThrow('Validation error');
+      });
       it('should throw original error of unknown type', async () => {
         await expect(
           fail(418, {
diff --git a/lib/util/http/github.ts b/lib/util/http/github.ts
index d2424f8d06816b7b33a294ee063e6f5be9f72786..b1095ab054a2567642666517b0279b59babd5417 100644
--- a/lib/util/http/github.ts
+++ b/lib/util/http/github.ts
@@ -111,6 +111,12 @@ function handleGotError(
     } else if (err.body?.errors?.find((e: any) => e.code === 'invalid')) {
       logger.debug({ err }, 'Received invalid response - aborting');
       throw new Error(REPOSITORY_CHANGED);
+    } else if (
+      err.body?.errors?.find((e: any) =>
+        e.message?.startsWith('A pull request already exists')
+      )
+    ) {
+      throw err;
     }
     logger.debug({ err }, '422 Error thrown from GitHub');
     throw new ExternalHostError(err, PLATFORM_TYPE_GITHUB);