diff --git a/lib/helpers/npm.js b/lib/helpers/npm.js
index 1677d454e3eb22c4c0b6c51e4505804343df6ad0..bf8c3ec285715c59711e3438fe80db50c7d45cf6 100644
--- a/lib/helpers/npm.js
+++ b/lib/helpers/npm.js
@@ -27,10 +27,19 @@ async function generateLockFile(newPackageJson, npmrcContent) {
     logger.debug(String(result.stdout));
     logger.debug(String(result.stderr));
     packageLock = fs.readFileSync(path.join(tmpDir.name, 'package-lock.json'));
-  } catch (error) {
-    /* istanbul ignore next */
+  } catch (error) /* istanbul ignore next */ {
+    try {
+      tmpDir.removeCallback();
+    } catch (err2) {
+      logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+    }
     throw error;
   }
+  try {
+    tmpDir.removeCallback();
+  } catch (err2) {
+    logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+  }
   return packageLock;
 }
 
diff --git a/lib/helpers/yarn.js b/lib/helpers/yarn.js
index 016a6a2e1dfcef6bf0cbc53666d0b59b0ff31212..254ed8ce7d4692e23ac522b8a3b4b02bc49d6bb0 100644
--- a/lib/helpers/yarn.js
+++ b/lib/helpers/yarn.js
@@ -40,10 +40,19 @@ async function generateLockFile(
     logger.debug(String(result.stdout));
     logger.debug(String(result.stderr));
     yarnLock = fs.readFileSync(path.join(tmpDir.name, 'yarn.lock'));
-  } catch (error) {
-    /* istanbul ignore next */
+  } catch (error) /* istanbul ignore next */ {
+    try {
+      tmpDir.removeCallback();
+    } catch (err2) {
+      logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+    }
     throw error;
   }
+  try {
+    tmpDir.removeCallback();
+  } catch (err2) {
+    logger.warn(`Failed to remove tmpDir ${tmpDir.name}`);
+  }
   return yarnLock;
 }