fix: do not report some datalake errors to analytics (#9083)

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
This commit is contained in:
Alexander Onnikov 2025-05-25 16:32:27 +07:00 committed by GitHub
parent a5930052ef
commit 8235380451
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -223,6 +223,16 @@ export function createServer (ctx: MeasureContext, config: Config): { app: Expre
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) {
@ -230,7 +240,11 @@ export function createServer (ctx: MeasureContext, config: Config): { app: Expre
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' })
})