diff --git a/lib/entry-points.js b/lib/entry-points.js index c7f68a4b6..c10b0ce2e 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -152292,7 +152292,11 @@ function isDiskConfigurationError(e) { if (!(e instanceof Error)) { return false; } - return e.message.includes("ENOSPC"); + return ( + // out of disk space + e.message.includes("ENOSPC") || // access denied + e.message.includes("EACCES") + ); } async function setupCodeQL(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, rawLanguages, useOverlayAwareDefaultCliVersion, features, logger, checkVersion) { try { diff --git a/src/codeql.test.ts b/src/codeql.test.ts index 77cf5c35c..df4bafe29 100644 --- a/src/codeql.test.ts +++ b/src/codeql.test.ts @@ -55,6 +55,13 @@ test("isDiskConfigurationError - true for expected errors", async (t) => { t.true( codeql.isDiskConfigurationError(new Error("ENOSPC: Out of disk space")), ); + t.true( + codeql.isDiskConfigurationError( + new Error( + "EACCES: permission denied, mkdir /opt/hostedtoolcache/CodeQL/", + ), + ), + ); }); test("isDiskConfigurationError - false for other errors", async (t) => { diff --git a/src/codeql.ts b/src/codeql.ts index 404819fb7..117b0d8e6 100644 --- a/src/codeql.ts +++ b/src/codeql.ts @@ -285,7 +285,12 @@ export function isDiskConfigurationError(e: unknown): boolean { return false; } - return e.message.includes("ENOSPC"); // out of disk space + return ( + // out of disk space + e.message.includes("ENOSPC") || + // access denied + e.message.includes("EACCES") + ); } /**