diff --git a/lib/config/definitions.ts b/lib/config/definitions.ts
index ca38c2efc1717632817423a0f9ca74c97df8f505..ecc1d455c5f7b1cab22947cc6e03a6a1946d694a 100644
--- a/lib/config/definitions.ts
+++ b/lib/config/definitions.ts
@@ -1082,7 +1082,6 @@ const options: RenovateOptions[] = [
     stage: 'package',
     type: 'object',
     default: {
-      recreateClosed: true,
       rebaseWhen: 'behind-base-branch',
       groupName: 'Pin Dependencies',
       groupSlug: 'pin-dependencies',
diff --git a/lib/manager/types.ts b/lib/manager/types.ts
index b845b030f1793f7966bc170b1a94a5cd12fdc99b..933d8729f4130025eba3688695fdaece4adb572d 100644
--- a/lib/manager/types.ts
+++ b/lib/manager/types.ts
@@ -135,7 +135,6 @@ export interface Package<T> extends ManagerData<T> {
 
 export interface LookupUpdate {
   bucket?: string;
-  blockedByPin?: boolean;
   branchName?: string;
   commitMessageAction?: string;
   isBump?: boolean;
diff --git a/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap b/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap
index f4483d0cffd15108a97491e243c3d9469acb9b2c..a98ec30cf6409787dd6d70f336611bc8e1324513 100644
--- a/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap
+++ b/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap
@@ -9,7 +9,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "latest",
     "newMajor": 1,
     "newMinor": 4,
@@ -94,7 +93,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "isRange": true,
     "newMajor": 0,
@@ -109,7 +107,6 @@ Array [
     "updateType": "minor",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "major",
     "isRange": true,
     "newMajor": 1,
@@ -144,7 +141,6 @@ Object {
   "sourceUrl": "https://github.com/nodejs/node",
   "updates": Array [
     Object {
-      "blockedByPin": true,
       "bucket": "non-major",
       "newDigest": "sha256:abcdef1234567890",
       "newMajor": 8,
@@ -331,7 +327,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "major",
     "newMajor": 1,
     "newMinor": 4,
@@ -563,7 +558,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 0,
     "newMinor": 9,
@@ -603,7 +597,6 @@ Array [
     "updateType": "minor",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "major",
     "newMajor": 1,
     "newMinor": 4,
@@ -1614,7 +1607,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 0,
     "newMinor": 9,
@@ -1654,7 +1646,6 @@ Array [
     "updateType": "minor",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "major",
     "newMajor": 1,
     "newMinor": 4,
@@ -1686,7 +1677,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 0,
     "newMinor": 9,
@@ -1726,7 +1716,6 @@ Array [
     "updateType": "minor",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "major",
     "newMajor": 1,
     "newMinor": 4,
@@ -1802,7 +1791,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 1,
     "newMinor": 4,
@@ -2235,7 +2223,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 1,
     "newMinor": 4,
@@ -2425,7 +2412,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 1,
     "newMinor": 4,
@@ -2481,7 +2467,6 @@ Array [
     "updateType": "pin",
   },
   Object {
-    "blockedByPin": true,
     "bucket": "non-major",
     "newMajor": 1,
     "newMinor": 4,
diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts
index 368819fde46de067964d909881a5b4c0f5b6aa04..66e221f22443c207489f215b1c46016f9360f1df 100644
--- a/lib/workers/repository/process/lookup/index.ts
+++ b/lib/workers/repository/process/lookup/index.ts
@@ -343,16 +343,5 @@ export async function lookupUpdates(
         update.isLockfileUpdate ||
         (update.newDigest && !update.newDigest.startsWith(currentDigest))
     );
-  if (res.updates.some((update) => update.updateType === 'pin')) {
-    for (const update of res.updates) {
-      if (
-        update.updateType !== 'pin' &&
-        update.updateType !== 'rollback' &&
-        !isVulnerabilityAlert
-      ) {
-        update.blockedByPin = true;
-      }
-    }
-  }
   return res;
 }
diff --git a/lib/workers/repository/process/write.spec.ts b/lib/workers/repository/process/write.spec.ts
index 4d172bd1d9981b112a93191b8503da6b3764098b..a8c5fcd96df7a3f5c289c5b6a30e86d2c056538e 100644
--- a/lib/workers/repository/process/write.spec.ts
+++ b/lib/workers/repository/process/write.spec.ts
@@ -29,17 +29,6 @@ beforeEach(() => {
 
 describe(getName(__filename), () => {
   describe('writeUpdates()', () => {
-    it('skips branches blocked by pin', async () => {
-      const branches: BranchConfig[] = [
-        { updateType: 'pin' },
-        { blockedByPin: true },
-        {},
-      ] as never;
-      git.branchExists.mockReturnValueOnce(false);
-      const res = await writeUpdates(config, branches);
-      expect(res).toEqual('done');
-      expect(branchWorker.processBranch).toHaveBeenCalledTimes(2);
-    });
     it('stops after automerge', async () => {
       const branches: BranchConfig[] = [
         {},
diff --git a/lib/workers/repository/process/write.ts b/lib/workers/repository/process/write.ts
index 7fe130b45813b0281f55632f18fa8e005b17a6c3..ca087fda93a1752c754c5e65267032146b11552d 100644
--- a/lib/workers/repository/process/write.ts
+++ b/lib/workers/repository/process/write.ts
@@ -12,7 +12,7 @@ export async function writeUpdates(
   config: RenovateConfig,
   allBranches: BranchConfig[]
 ): Promise<WriteUpdateResult> {
-  let branches = allBranches;
+  const branches = allBranches;
   logger.debug(
     `Processing ${branches.length} branch${
       branches.length === 1 ? '' : 'es'
@@ -21,14 +21,6 @@ export async function writeUpdates(
       .sort()
       .join(', ')}`
   );
-  branches = branches.filter((branchConfig) => {
-    if (branchConfig.blockedByPin) {
-      logger.debug(`Branch ${branchConfig.branchName} is blocked by a Pin PR`);
-      return false;
-    }
-    return true;
-  });
-
   const prsRemaining = await getPrsRemaining(config, branches);
   logger.debug({ prsRemaining }, 'Calculated maximum PRs remaining this run');
   setMaxLimit(Limit.PullRequests, prsRemaining);
diff --git a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
index e187171a026f68f9729fd851136a40940c433f5c..7d31281a2bb041ead1dadb5000e925c0ea5b71a5 100644
--- a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
+++ b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap
@@ -6,7 +6,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
 Object {
   "addLabels": Array [],
   "automerge": false,
-  "blockedByPin": false,
   "branchName": "some-branch",
   "commitMessage": "",
   "constraints": Object {},
@@ -77,7 +76,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles @typ
 Object {
   "addLabels": Array [],
   "automerge": false,
-  "blockedByPin": false,
   "branchName": "some-branch",
   "commitBodyTable": true,
   "commitMessage": "\\n\\n| datasource | package         | from  | to    |\\n| ---------- | --------------- | ----- | ----- |\\n| npm        | @types/some-dep | 0.5.7 | 0.5.8 |\\n",
@@ -149,7 +147,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles lock
 Object {
   "addLabels": Array [],
   "automerge": false,
-  "blockedByPin": false,
   "branchName": "some-branch",
   "commitMessage": "",
   "constraints": Object {},
@@ -181,7 +178,6 @@ exports[`workers/repository/updates/generate generateBranchConfig() handles lock
 Object {
   "addLabels": Array [],
   "automerge": false,
-  "blockedByPin": false,
   "branchName": "some-branch",
   "commitMessage": "",
   "constraints": Object {},
diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts
index a7f18d194d20b30c93c7a2ebaaf28a0de4e61676..2ddf9b39bc1f1a1e6e8effdc6d8390cb62e56d92 100644
--- a/lib/workers/repository/updates/generate.ts
+++ b/lib/workers/repository/updates/generate.ts
@@ -302,9 +302,6 @@ export function generateBranchConfig(
   if (config.upgrades.some((upgrade) => upgrade.updateType === 'major')) {
     config.updateType = 'major';
   }
-  config.blockedByPin = config.upgrades.every(
-    (upgrade) => upgrade.blockedByPin
-  );
   config.constraints = {};
   for (const upgrade of config.upgrades || []) {
     if (upgrade.constraints) {