diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts
index 8a46fe8da5ef5f164ec88a0dc09d0096b1c2d790..43faf6cc172767768387272cfc8f64b42c282481 100644
--- a/lib/workers/branch/index.ts
+++ b/lib/workers/branch/index.ts
@@ -586,7 +586,7 @@ export async function processBranch(
       `There are ${config.errors.length} errors and ${config.warnings.length} warnings`
     );
     const { prResult: result, pr } = await ensurePr(config);
-    if (result === PrResult.LimitReached) {
+    if (result === PrResult.LimitReached && !config.vulnerabilityAlert) {
       logger.debug('Reached PR limit - skipping PR creation');
       return ProcessBranchResult.PrLimitReached;
     }
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index 2a6b63c3cda16ed9959df717f4715d4e319d90fc..53b03a1b933e6f093b3cbbd18caac16ec64310f8 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -382,7 +382,12 @@ export async function ensurePr(
         logger.info('DRY-RUN: Would create PR: ' + prTitle);
         pr = { number: 0, displayNumber: 'Dry run PR' } as never;
       } else {
-        if (!dependencyDashboardCheck && isLimitReached(Limit.PullRequests)) {
+        if (
+          !dependencyDashboardCheck &&
+          isLimitReached(Limit.PullRequests) &&
+          !config.vulnerabilityAlert
+        ) {
+          logger.debug('Skipping PR - limit reached');
           return { prResult: PrResult.LimitReached };
         }
         pr = await platform.createPr({