From 5723a9589aaf0b96ec329677b8a898e84e223d94 Mon Sep 17 00:00:00 2001 From: Andrew Rumble Date: Tue, 3 Mar 2026 09:38:35 +0000 Subject: [PATCH] Merge pull request #31567 from overleaf/ar-fb/handle-clsi-timeout-better [clsi-lb,v1,clsi,web] handle clsi timeout better GitOrigin-RevId: 86aa1e01b8cb465b8b9332e17fb97c21849d0489 --- services/clsi/app.js | 2 +- services/web/app/src/Features/Compile/ClsiManager.mjs | 2 ++ services/web/app/src/Features/Compile/CompileController.mjs | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/services/clsi/app.js b/services/clsi/app.js index a01b2a79aa..0a8423b726 100644 --- a/services/clsi/app.js +++ b/services/clsi/app.js @@ -37,7 +37,7 @@ app.use(Metrics.http.monitor(logger)) // Compile requests can take longer than the default two // minutes (including file download time), so bump up the // timeout a bit. -const TIMEOUT = 10 * 60 * 1000 +const TIMEOUT = 630 * 1000 // 10.5 minutes - 30 seconds download allowance app.use(function (req, res, next) { req.setTimeout(TIMEOUT) res.setTimeout(TIMEOUT) diff --git a/services/web/app/src/Features/Compile/ClsiManager.mjs b/services/web/app/src/Features/Compile/ClsiManager.mjs index 55a8f32cd1..e96b84f3f5 100644 --- a/services/web/app/src/Features/Compile/ClsiManager.mjs +++ b/services/web/app/src/Features/Compile/ClsiManager.mjs @@ -609,6 +609,8 @@ async function _postToClsi( return { response: { compile: { status: 'compile-in-progress' } } } } else if (err.response.status === 503) { return { response: { compile: { status: 'unavailable' } } } + } else if (err.response.status === 504) { + return { response: { compile: { status: 'timedout' } } } } else { throw new OError('CLSI returned non-success code', { projectId, diff --git a/services/web/app/src/Features/Compile/CompileController.mjs b/services/web/app/src/Features/Compile/CompileController.mjs index a0334988ff..14ad0be5e6 100644 --- a/services/web/app/src/Features/Compile/CompileController.mjs +++ b/services/web/app/src/Features/Compile/CompileController.mjs @@ -30,7 +30,7 @@ const ClsiCookieManager = ClsiCookieManagerFactory( Settings.apis.clsi?.backendGroupName ) -const COMPILE_TIMEOUT_MS = 10 * 60 * 1000 +const COMPILE_TIMEOUT_MS = 12 * 60 * 1000 const buildIdSchema = z.string().regex(/[a-z0-9-]/)