Error Handling
ZenStack's enhancements to Prisma clients are transparent proxies, so normal errors thrown from a Prisma client simply pass through, and you can handle them the same way as you do in a regular Prisma project. It's good to read these references from Prisma:
The enhanced Prisma client can throw extra errors when an operation is rejected by access policies or its data fails validation rules. To keep a consistent programming experience, a PrismaClientKnownRequestError
is thrown with code P2004
is used in such cases:
throw new PrismaClientKnownRequestError(message, {
clientVersion: getVersion(),
code: 'P2004',
meta: ...
});
The error contains a meta
field providing more information about the error. It contains the following fields:
-
reason
A string field indicating the detailed reason of the rejection. Its value can be one of the following:
-
ACCESS_POLICY_VIOLATION
CRUD failed because of access policy violation.
-
RESULT_NOT_READABLE
CRUD succeeded but the result was not readable (violating "read" access policies).
-
DATA_VALIDATION_VIOLATION
CRUD failed because of a data validation error.
-
-
zodErrors
An object field containing the raw Zod validation errors. Only present if the
reason
isDATA_VALIDATION_VIOLATION
. See Zod documentation for more details.