diff --git a/dist/setup/index.js b/dist/setup/index.js
index 0dcd2342d..378197f56 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -61155,7 +61155,8 @@ const restoreCache = (versionSpec, packageManager, cacheDependencyPath) => __awa
     if (!fileHash) {
         throw new Error('Some specified paths were not resolved, unable to cache dependencies.');
     }
-    const primaryKey = `setup-go-${platform}-go-${versionSpec}-${fileHash}`;
+    const linuxVersion = process.env.RUNNER_OS === 'Linux' ? `${process.env.ImageOS}-` : '';
+    const primaryKey = `setup-go-${platform}-${linuxVersion}go-${versionSpec}-${fileHash}`;
     core.debug(`primary key is ${primaryKey}`);
     core.saveState(constants_1.State.CachePrimaryKey, primaryKey);
     const cacheKey = yield cache.restoreCache(cachePaths, primaryKey);
diff --git a/src/cache-restore.ts b/src/cache-restore.ts
index 14f84c448..183df9ea5 100644
--- a/src/cache-restore.ts
+++ b/src/cache-restore.ts
@@ -29,7 +29,9 @@ export const restoreCache = async (
     );
   }
 
-  const primaryKey = `setup-go-${platform}-go-${versionSpec}-${fileHash}`;
+  const linuxVersion =
+    process.env.RUNNER_OS === 'Linux' ? `${process.env.ImageOS}-` : '';
+  const primaryKey = `setup-go-${platform}-${linuxVersion}go-${versionSpec}-${fileHash}`;
   core.debug(`primary key is ${primaryKey}`);
 
   core.saveState(State.CachePrimaryKey, primaryKey);