diff --git a/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts b/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts index 0cc8d93b6..6c7a2458f 100644 --- a/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts +++ b/apps/edr-passenger-api/src/common/filters/http-exception.filter.ts @@ -24,7 +24,11 @@ export class HttpExceptionFilter implements ExceptionFilter { const request = ctx.getRequest(); let prismaMessage: string | null = null; + let prismaCode: string | null = null; + let prismaMeta: unknown = null; if (exception instanceof PrismaClientKnownRequestError) { + prismaCode = exception.code; + prismaMeta = exception.meta; if (exception.code === 'P2003') { const field = (exception.meta?.field_name as string | undefined) ?? 'a related record'; prismaMessage = `Cannot delete this record because it is still referenced by ${field}. Remove the related records first.`; @@ -68,6 +72,7 @@ export class HttpExceptionFilter implements ExceptionFilter { statusCode: status, message, error: exception instanceof Error ? exception.name : 'Error', + ...(prismaCode ? { prismaCode, prismaMeta } : {}), timestamp: new Date().toISOString(), path: request.url, ...customFields,