diff --git a/lib/manager/npm/post-update/npm.ts b/lib/manager/npm/post-update/npm.ts
index d63e6c5e0944a66f58821c24d45b159557c2857d..ff442d980d8041163c770295284282ea78c366cb 100644
--- a/lib/manager/npm/post-update/npm.ts
+++ b/lib/manager/npm/post-update/npm.ts
@@ -28,8 +28,19 @@ export async function generateLockFile(
   try {
     let installNpm = 'npm i -g npm';
     const npmCompatibility = config.constraints?.npm as string;
-    if (validRange(npmCompatibility)) {
-      installNpm = `npm i -g ${quote(`npm@${npmCompatibility}`)}`;
+    // istanbul ignore else
+    if (npmCompatibility) {
+      // istanbul ignore else
+      if (validRange(npmCompatibility)) {
+        installNpm = `npm i -g ${quote(`npm@${npmCompatibility}`)}`;
+      } else {
+        logger.debug(
+          { npmCompatibility },
+          'npm compatibility range is not valid - skipping'
+        );
+      }
+    } else {
+      logger.debug('No npm compatibility range found - installing npm latest');
     }
     const preCommands = [installNpm, 'hash -d npm'];
     const commands = [];