diff --git a/lib/manager/npm/post-update/node-version.spec.ts b/lib/manager/npm/post-update/node-version.spec.ts
index 08db7fa911014b2c1ef7ebd5337d3e50ae1c81f2..617ce7d9886a23262ce914dae04bf89ab73fa6ac 100644
--- a/lib/manager/npm/post-update/node-version.spec.ts
+++ b/lib/manager/npm/post-update/node-version.spec.ts
@@ -36,7 +36,7 @@ describe('manager/npm/post-update/node-version', () => {
       ...config,
       constraints: { node: '>= 12.16.0' },
     });
-    const isAugmentedRange = res === '>=15';
+    const isAugmentedRange = res === '>=15 <17';
     const node16IsStable = isStable('16.100.0');
     expect(isAugmentedRange || node16IsStable).toBe(true);
   });
diff --git a/lib/manager/npm/post-update/node-version.ts b/lib/manager/npm/post-update/node-version.ts
index 8c44d201eaa66f05019895b0f39006584fe395f6..30d11b13851daf6c3c33005d157c9f2ad9f4bcd3 100644
--- a/lib/manager/npm/post-update/node-version.ts
+++ b/lib/manager/npm/post-update/node-version.ts
@@ -57,8 +57,8 @@ export async function getNodeConstraint(
       !isStable('16.100.0')
     ) {
       if (lockfileVersion === 2) {
-        logger.debug('Forcing node 15 to ensure lockfileVersion=2 is used');
-        constraint = '>=15';
+        logger.debug('Forcing node 15+ to ensure lockfileVersion=2 is used');
+        constraint = '>=15 <17';
       } else if (validRange(`${constraint} <15`)) {
         logger.debug('Augmenting constraint to avoid node 15');
         constraint = `${constraint} <15`;