              yield tar_1.extractTar(archivePath, compressionMethod);
              core.info('Cache restored successfully');
 -            return cacheEntry.cacheKey;
+-        }
+-        catch (error) {
+-            const typedError = error;
+-            if (typedError.name === ValidationError.name) {
+-                throw error;
+-            }
+-            else {
+-                // Supress all non-validation cache related errors because caching should be optional
+-                core.warning(`Failed to restore: ${error.message}`);
+-            }
 +            return restoredEntry;
          }
-         catch (error) {
-             const typedError = error;
-@@ -153,6 +155,7 @@ function saveCache(paths, key, options) {
++        // PATCH: Error handling is done in action code, allowing us to provide better reporting
++        // catch (error) {
++        //     const typedError = error;
++        //     if (typedError.name === ValidationError.name) {
++        //         throw error;
++        //     }
++        //     else {
++        //         // Supress all non-validation cache related errors because caching should be optional
++        //         core.warning(`Failed to restore: ${error.message}`);
++        //     }
++        // }
+         finally {
+             // Try to delete the archive to save space
+             try {
+@@ -153,6 +156,7 @@ function saveCache(paths, key, options) {
          const archiveFolder = yield utils.createTempDirectory();
          const archivePath = path.join(archiveFolder, utils.getCacheFileName(compressionMethod));
          core.debug(`Archive Path: ${archivePath}`);

         try {
             yield tar_1.createTar(archiveFolder, cachePaths, compressionMethod);
             if (core.isDebug()) {
@@ -160,6 +163,7 @@ function saveCache(paths, key, options) {
             }
             const fileSizeLimit = 10 * 1024 * 1024 * 1024; // 10GB per repo limit
             const archiveFileSize = utils.getArchiveFileSizeInBytes(archivePath);

             core.debug(`File Size: ${archiveFileSize}`);
             // For GHES, this check will take place in ReserveCache API with enterprise file size limit
             if (archiveFileSize > fileSizeLimit && !utils.isGhes()) {
@@ -182,18 +187,19 @@ function saveCache(paths, key, options) {
             core.debug(`Saving Cache (ID: ${cacheId})`);
             yield cacheHttpClient.saveCache(cacheId, archivePath, options);
         }
-        catch (error) {
-            const typedError = error;
-            if (typedError.name === ValidationError.name) {
-                throw error;
-            }
-            else if (typedError.name === ReserveCacheError.name) {
-                core.info(`Failed to save: ${typedError.message}`);
-            }
-            else {
-                core.warning(`Failed to save: ${typedError.message}`);
-            }
-        }
+        // PATCH: Error handling is done in action code, allowing us to provide better reporting
+        // catch (error) {
+        //     const typedError = error;
+        //     if (typedError.name === ValidationError.name) {
+        //         throw error;
+        //     }
+        //     else if (typedError.name === ReserveCacheError.name) {
+        //         core.info(`Failed to save: ${typedError.message}`);
+        //     }
+        //     else {
+        //         core.warning(`Failed to save: ${typedError.message}`);
+        //     }
+        // }
         finally {
             // Try to delete the archive to save space
             try {
@@ -203,8 +209,15 @@ function saveCache(paths, key, options) {
                 core.debug(`Failed to delete archive: ${error}`);
             }
         }
