diff --git a/.changeset/dull-bees-draw.md b/.changeset/dull-bees-draw.md new file mode 100644 index 000000000..8a09ca242 --- /dev/null +++ b/.changeset/dull-bees-draw.md @@ -0,0 +1,5 @@ +--- +'@tanstack/form-core': patch +--- + +fix(form-core): Prevent runtime errors during validation diff --git a/packages/form-core/src/FormApi.ts b/packages/form-core/src/FormApi.ts index 5b1ec5e17..ff52bbe74 100644 --- a/packages/form-core/src/FormApi.ts +++ b/packages/form-core/src/FormApi.ts @@ -1696,8 +1696,11 @@ export class FormApi< determineFormLevelErrorSourceAndValue({ newFormValidatorError, isPreviousErrorFromFormValidator: - currentErrorMapSource[errorMapKey] === 'form', - previousErrorValue: currentErrorMap[errorMapKey], + // These conditional checks are required, otherwise we get runtime errors. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + currentErrorMapSource?.[errorMapKey] === 'form', + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + previousErrorValue: currentErrorMap?.[errorMapKey], }) if (newSource === 'form') { @@ -1707,7 +1710,9 @@ export class FormApi< } } - if (currentErrorMap[errorMapKey] !== newErrorValue) { + // This conditional check is required, otherwise we get runtime errors. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (currentErrorMap?.[errorMapKey] !== newErrorValue) { this.setFieldMeta(field, (prev = defaultFieldMeta) => ({ ...prev, errorMap: {