Handle zod errors in global error handler

GitOrigin-RevId: 2e23067b3af3178864064bc595c97a18e901ea60
This commit is contained in:
Eric Mc Sween
2025-07-02 17:49:46 -04:00
committed by Copybot
parent eab890748c
commit a22bde5d5d
@@ -1,3 +1,4 @@
const { isZodErrorLike, fromZodError } = require('zod-validation-error')
const Errors = require('./Errors')
const SessionManager = require('../Authentication/SessionManager')
const SamlLogHandler = require('../SamlLog/SamlLogHandler')
@@ -88,6 +89,13 @@ async function handleError(error, req, res, next) {
if (shouldSendErrorResponse) {
HttpErrorHandler.badRequest(req, res, error.message)
}
} else if (isZodErrorLike(error)) {
req.logger.setLevel('warn')
res.status(400)
if (shouldSendErrorResponse) {
const validationError = fromZodError(error)
res.render('general/400', { message: validationError.message })
}
} else {
req.logger.setLevel('error')
if (shouldSendErrorResponse) {
@@ -118,6 +126,9 @@ function handleApiError(err, req, res, next) {
} else if (err instanceof Errors.ForbiddenError) {
req.logger.setLevel('warn')
res.sendStatus(403)
} else if (isZodErrorLike(err)) {
req.logger.setLevel('warn')
res.sendStatus(400)
} else {
req.logger.setLevel('error')
res.sendStatus(500)