From 0c8c2cc84e1c2e0d33daabe112145348c45d86a1 Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Sun, 25 May 2025 16:33:07 +0700 Subject: [PATCH] fix: do not report some datalake errors to analytics (#9085) Signed-off-by: Alexander Onnikov --- services/datalake/pod-datalake/src/server.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/services/datalake/pod-datalake/src/server.ts b/services/datalake/pod-datalake/src/server.ts index dac92dc5ef..36b8d7f7f0 100644 --- a/services/datalake/pod-datalake/src/server.ts +++ b/services/datalake/pod-datalake/src/server.ts @@ -233,6 +233,16 @@ export async function createServer (ctx: MeasureContext, config: Config): Promis app.get('/image/:transform/:workspace/:name', withBlob, wrapRequest(ctx, 'transformImage', handleImageGet)) // no auth + const sendErrorToAnalytics = (err: any): boolean => { + const ignoreMessages = [ + 'Unexpected end of form', // happens when the client closes the connection before the upload is complete + 'Premature close', // happens when the client closes the connection before the upload is complete + 'File too large' // happens when the file exceeds the limit set by express-fileupload + ] + + return !ignoreMessages.includes(err.message) + } + app.use((err: any, _req: any, res: any, _next: any) => { ctx.error(err.message, { code: err.code, message: err.message }) if (err instanceof ApiError) { @@ -240,7 +250,11 @@ export async function createServer (ctx: MeasureContext, config: Config): Promis return } - Analytics.handleError(err) + // do not send some errors to analytics + if (sendErrorToAnalytics(err)) { + Analytics.handleError(err) + } + res.status(500).json({ message: err.message?.length > 0 ? err.message : 'Internal Server Error' }) })