[Zod 4] RFC: ZodIssue
formats
#3713
Draft
+630
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Old formats:
https://github.com/colinhacks/zod/blob/v4-rfc-issues/rfcs/v4-issue-formats/old_formats.ts
New formats: https://github.com/colinhacks/zod/blob/v4-rfc-issues/rfcs/v4-issue-formats/new_formats.ts
Conceptually speaking these are the major changes:
ZodIssue
is a 2-level discriminated union. The first level discriminates oncode
:invalid_type
,invalid_string
m etc. For eachcode
, there are sub-issues that are discriminated with thecheck
field.invalid_union
,invalid_literal
,invalid_enum_value
intoinvalid_type
too_big
andtoo_small
across the specific types for which they are defined:invalid_string
,invalid_array
, etc.invalid_string
) there is an additional layer of discrimination using thecheck
key. Instead of a top-levelZodNotMultipleOfIssue
, this is now acheck: "multiple_of"
withincode: "invalid_string"
.invalid_arguments
,invalid_return_type
,invalid_discriminator_value
as these issues are specific to types that will be removed in Zod 4.