diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 687268d..e11bb5a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -31,4 +31,4 @@ Here are a few things you can do that will increase the likelihood of your pull
 
 - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
 - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
-- [GitHub Help](https://help.github.com)
+- [GitHub Help](https://help.github.com)
\ No newline at end of file
diff --git a/__tests__/tar.test.ts b/__tests__/tar.test.ts
index 8345c67..5ffa19a 100644
--- a/__tests__/tar.test.ts
+++ b/__tests__/tar.test.ts
@@ -12,7 +12,6 @@ jest.mock("@actions/exec");
 jest.mock("@actions/io");
 
 const IS_WINDOWS = process.platform === "win32";
-const IS_64OS = process.platform != "win32" || process.arch === "x64";
 
 function getTempDir(): string {
     return path.join(__dirname, "_temp", "tar");
@@ -47,13 +46,12 @@ test("zstd extract tar", async () => {
     const tarPath = IS_WINDOWS
         ? `${process.env["windir"]}\\System32\\tar.exe`
         : "tar";
-    const zstdOptions = IS_64OS ? "zstd -d --long=31" : "zstd -d --long=30";
     expect(execMock).toHaveBeenCalledTimes(1);
     expect(execMock).toHaveBeenCalledWith(
         `"${tarPath}"`,
         [
             "--use-compress-program",
-            zstdOptions,
+            "zstd -d --long=30",
             "-xf",
             IS_WINDOWS ? archivePath.replace(/\\/g, "/") : archivePath,
             "-P",
@@ -142,14 +140,13 @@ test("zstd create tar", async () => {
     const tarPath = IS_WINDOWS
         ? `${process.env["windir"]}\\System32\\tar.exe`
         : "tar";
-    const zstdOptions = IS_64OS ? "zstd -T0 --long=31" : "zstd -T0 --long=30";
 
     expect(execMock).toHaveBeenCalledTimes(1);
     expect(execMock).toHaveBeenCalledWith(
         `"${tarPath}"`,
         [
             "--use-compress-program",
-            zstdOptions,
+            "zstd -T0 --long=30",
             "-cf",
             IS_WINDOWS
                 ? CacheFilename.Zstd.replace(/\\/g, "/")
diff --git a/dist/restore/index.js b/dist/restore/index.js
index 8eeaf0a..67707ad 100644
--- a/dist/restore/index.js
+++ b/dist/restore/index.js
@@ -5078,22 +5078,17 @@ function getWorkingDirectory() {
     var _a;
     return _a = process.env["GITHUB_WORKSPACE"], (_a !== null && _a !== void 0 ? _a : process.cwd());
 }
-function isOS64() {
-    return process.platform != "win32" || process.arch === "x64";
-}
 function extractTar(archivePath, compressionMethod) {
     return __awaiter(this, void 0, void 0, function* () {
         // Create directory to extract tar into
         const workingDirectory = getWorkingDirectory();
         yield io.mkdirP(workingDirectory);
-        // --d: Decompress. 
+        // --d: Decompress.
         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+        // Using 30 here because we also support 32-bit self-hosted runners.
         const args = [
             ...(compressionMethod == constants_1.CompressionMethod.Zstd
-                ? [
-                    "--use-compress-program",
-                    isOS64() ? "zstd -d --long=31" : "zstd -d --long=30"
-                ]
+                ? ["--use-compress-program", "zstd -d --long=30"]
                 : ["-z"]),
             "-xf",
             archivePath.replace(new RegExp("\\" + path.sep, "g"), "/"),
@@ -5113,13 +5108,11 @@ function createTar(archiveFolder, sourceDirectories, compressionMethod) {
         fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join("\n"));
         // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+        // Using 30 here because we also support 32-bit self-hosted runners.
         const workingDirectory = getWorkingDirectory();
         const args = [
             ...(compressionMethod == constants_1.CompressionMethod.Zstd
-                ? [
-                    "--use-compress-program",
-                    isOS64() ? "zstd -T0 --long=31" : "zstd -T0 --long=30"
-                ]
+                ? ["--use-compress-program", "zstd -T0 --long=30"]
                 : ["-z"]),
             "-cf",
             cacheFileName.replace(new RegExp("\\" + path.sep, "g"), "/"),
diff --git a/dist/save/index.js b/dist/save/index.js
index 2945161..3d7a6df 100644
--- a/dist/save/index.js
+++ b/dist/save/index.js
@@ -5055,22 +5055,17 @@ function getWorkingDirectory() {
     var _a;
     return _a = process.env["GITHUB_WORKSPACE"], (_a !== null && _a !== void 0 ? _a : process.cwd());
 }
-function isOS64() {
-    return process.platform != "win32" || process.arch === "x64";
-}
 function extractTar(archivePath, compressionMethod) {
     return __awaiter(this, void 0, void 0, function* () {
         // Create directory to extract tar into
         const workingDirectory = getWorkingDirectory();
         yield io.mkdirP(workingDirectory);
-        // --d: Decompress. 
+        // --d: Decompress.
         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+        // Using 30 here because we also support 32-bit self-hosted runners.
         const args = [
             ...(compressionMethod == constants_1.CompressionMethod.Zstd
-                ? [
-                    "--use-compress-program",
-                    isOS64() ? "zstd -d --long=31" : "zstd -d --long=30"
-                ]
+                ? ["--use-compress-program", "zstd -d --long=30"]
                 : ["-z"]),
             "-xf",
             archivePath.replace(new RegExp("\\" + path.sep, "g"), "/"),
@@ -5090,13 +5085,11 @@ function createTar(archiveFolder, sourceDirectories, compressionMethod) {
         fs_1.writeFileSync(path.join(archiveFolder, manifestFilename), sourceDirectories.join("\n"));
         // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
         // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+        // Using 30 here because we also support 32-bit self-hosted runners.
         const workingDirectory = getWorkingDirectory();
         const args = [
             ...(compressionMethod == constants_1.CompressionMethod.Zstd
-                ? [
-                    "--use-compress-program",
-                    isOS64() ? "zstd -T0 --long=31" : "zstd -T0 --long=30"
-                ]
+                ? ["--use-compress-program", "zstd -T0 --long=30"]
                 : ["-z"]),
             "-cf",
             cacheFileName.replace(new RegExp("\\" + path.sep, "g"), "/"),
diff --git a/src/tar.ts b/src/tar.ts
index 8aa7b0a..e40a01a 100644
--- a/src/tar.ts
+++ b/src/tar.ts
@@ -32,10 +32,6 @@ function getWorkingDirectory(): string {
     return process.env["GITHUB_WORKSPACE"] ?? process.cwd();
 }
 
-function isOS64(): boolean {
-    return process.platform != "win32" || process.arch === "x64";
-}
-
 export async function extractTar(
     archivePath: string,
     compressionMethod: CompressionMethod
@@ -45,12 +41,10 @@ export async function extractTar(
     await io.mkdirP(workingDirectory);
     // --d: Decompress.
     // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+    // Using 30 here because we also support 32-bit self-hosted runners.
     const args = [
         ...(compressionMethod == CompressionMethod.Zstd
-            ? [
-                  "--use-compress-program",
-                  isOS64() ? "zstd -d --long=31" : "zstd -d --long=30"
-              ]
+            ? ["--use-compress-program", "zstd -d --long=30"]
             : ["-z"]),
         "-xf",
         archivePath.replace(new RegExp("\\" + path.sep, "g"), "/"),
@@ -75,13 +69,11 @@ export async function createTar(
     );
     // -T#: Compress using # working thread. If # is 0, attempt to detect and use the number of physical CPU cores.
     // --long=#: Enables long distance matching with # bits. Maximum is 30 (1GB) on 32-bit OS and 31 (2GB) on 64-bit.
+    // Using 30 here because we also support 32-bit self-hosted runners.
     const workingDirectory = getWorkingDirectory();
     const args = [
         ...(compressionMethod == CompressionMethod.Zstd
-            ? [
-                  "--use-compress-program",
-                  isOS64() ? "zstd -T0 --long=31" : "zstd -T0 --long=30"
-              ]
+            ? ["--use-compress-program", "zstd -T0 --long=30"]
             : ["-z"]),
         "-cf",
         cacheFileName.replace(new RegExp("\\" + path.sep, "g"), "/"),