diff --git a/src/installer.ts b/src/installer.ts
index f617662..0554c17 100644
--- a/src/installer.ts
+++ b/src/installer.ts
@@ -235,22 +235,28 @@ async function cacheWindowsDir(
   // iterate through actual cache directory paths and make links if necessary
   for (const cachePath of actualCacheDirectoryPaths) {
     core.info(`Trying to link ${cachePath.defaultPath} to ${cachePath.actualPath}`);
-    if (!fs.existsSync(cachePath.actualPath)) {
-      core.info(`Creating directory ${cachePath.actualPath}`);
-      fs.mkdirSync(path.dirname(cachePath.actualPath), {recursive: true});
-    } else {
-      core.info(`Directory ${cachePath.actualPath} already exists`);
-    }
-    // make sure the link is pointing to the actual cache directory
-    const symlinkTarget = fs.readlinkSync(cachePath.defaultPath);
-    core.info(`Symlink target: ${symlinkTarget}`);
-    if (symlinkTarget !== "") {
-      core.info(`Found link ${cachePath.defaultPath} => ${symlinkTarget}`);
-    } else {
-      fs.symlinkSync(cachePath.actualPath, cachePath.defaultPath, 'junction');
-      core.info(
-        `Created link ${cachePath.defaultPath} => ${cachePath.actualPath}`
-      );
+    try {
+      if (!fs.existsSync(cachePath.actualPath)) {
+        core.info(`Creating directory ${cachePath.actualPath}`);
+        fs.mkdirSync(path.dirname(cachePath.actualPath), {recursive: true});
+      } else {
+        core.info(`Directory ${cachePath.actualPath} already exists`);
+      }
+
+      // check if the default path is a symlink
+      const isSymlink = fs.lstatSync(cachePath.defaultPath).isSymbolicLink();
+      if (isSymlink) {
+        core.info(`Default path is symlink ${cachePath.defaultPath} => ${fs.readlinkSync(cachePath.defaultPath)}`);
+      } else {
+        core.info(`Default path is not a symlink ${cachePath.defaultPath}`);
+        fs.symlinkSync(cachePath.actualPath, cachePath.defaultPath, 'junction');
+        core.info(
+          `Created link ${cachePath.defaultPath} => ${cachePath.actualPath}`
+        );
+      }
+    } catch (err) {
+      core.info(`Failed to link ${cachePath.defaultPath} to ${cachePath.actualPath}`);
+      core.info('Error: ' + err);
     }
   }