diff --git a/lib/workers/repository/process/write.spec.ts b/lib/workers/repository/process/write.spec.ts
index 35897e1dc69c06d04cf446977b76b0721f6b57b2..76595d833e9a797f5ee534087996b586e0b7d04e 100644
--- a/lib/workers/repository/process/write.spec.ts
+++ b/lib/workers/repository/process/write.spec.ts
@@ -1,9 +1,11 @@
-import { RenovateConfig, getConfig, mocked } from '../../../../test/util';
+import { RenovateConfig, getConfig, git, mocked } from '../../../../test/util';
 import * as _branchWorker from '../../branch';
 import { BranchConfig, ProcessBranchResult } from '../../common';
 import * as _limits from './limits';
 import { writeUpdates } from './write';
 
+jest.mock('../../../util/git');
+
 const branchWorker = mocked(_branchWorker);
 const limits = mocked(_limits);
 
@@ -25,6 +27,7 @@ describe('workers/repository/write', () => {
         { blockedByPin: true },
         {},
       ] as never;
+      git.branchExists.mockReturnValueOnce(false);
       const res = await writeUpdates(config, branches);
       expect(res).toEqual('done');
       expect(branchWorker.processBranch).toHaveBeenCalledTimes(2);
@@ -37,6 +40,7 @@ describe('workers/repository/write', () => {
         {},
         {},
       ] as never;
+      git.branchExists.mockReturnValue(true);
       branchWorker.processBranch.mockResolvedValueOnce(
         ProcessBranchResult.PrCreated
       );
diff --git a/lib/workers/repository/process/write.ts b/lib/workers/repository/process/write.ts
index 424653d380c66df5063b0a08b91ff7ceaedd0bd4..62752e0b15536ded7c3ef359b13b02cef0ff674d 100644
--- a/lib/workers/repository/process/write.ts
+++ b/lib/workers/repository/process/write.ts
@@ -1,5 +1,6 @@
 import { RenovateConfig } from '../../../config';
 import { addMeta, logger, removeMeta } from '../../../logger';
+import { branchExists } from '../../../util/git';
 import { processBranch } from '../../branch';
 import { BranchConfig, ProcessBranchResult } from '../../common';
 import { Limit, isLimitReached } from '../../global/limits';
@@ -33,6 +34,7 @@ export async function writeUpdates(
     addMeta({ branch: branch.branchName });
     const prLimitReached = prsRemaining <= 0;
     const commitLimitReached = isLimitReached(Limit.Commits);
+    const branchExisted = branchExists(branch.branchName);
     const res = await processBranch(branch, prLimitReached, commitLimitReached);
     branch.res = res;
     if (
@@ -54,6 +56,14 @@ export async function writeUpdates(
     ) {
       deductPrRemainingCount = 1;
     }
+    // istanbul ignore if
+    if (
+      res === ProcessBranchResult.Pending &&
+      !branchExisted &&
+      branchExists(branch.branchName)
+    ) {
+      deductPrRemainingCount = 1;
+    }
     prsRemaining -= deductPrRemainingCount;
   }
   removeMeta(['branch']);