Packages

react-hook-form

7.91.0 · 23 Oct 2026MIT42M / weekRepositoryHomepagenpmAtom feed

Your version

7.88.0

11 Sep 2026Where it was published

7.91.0 is the newest release of 7.x.

In short

1 new29 fixed

Release note

Added

  • <ErrorMessage /> component for rendering a field's validation error

Fixed

  • setValue dirty state comparison ignoring valueAs* / setValueAs transforms

  • Nested delayError timers not being cancelled when a parent is cleared or unregistered

  • Cleared delayError errors coming back once the pending timer fires

  • criteriaMode not refreshing when form options are updated at runtime

  • resetField leaving stale validating state for the field

  • reset not clearing isValidating and validatingFields, and ignoring keepIsValidating

  • replace() leaving errors and touched state for removed rows

  • remove() leaking deleted values onto surviving items

  • handleSubmit applying a stale resolver result after reset

  • handleSubmit dropping resolver-reported root errors on submit

  • Stale resolver state updates being applied after reset

  • trigger dropping registered nested errors when targeting their parent

  • trigger setting a parent error when the target has only nested resolver errors

  • useWatch compute cache not being initialized with the initial output

  • flatten / jsonToFormData not preserving FileList and not skipping undefined

  • schemaErrorLookup reporting nested containers as exact-name errors

  • unregister not recomputing isValidating after clearing validatingFields

  • unregister stripping a kept value from the submit payload

  • iterateFieldsByAction only breaking out of one loop level

  • setError types from a previous validation surviving an overwrite

  • react-server build not being published

  • validateField calling setCustomValidity per key in validate-object mode

  • useFieldArray not focusing a checkbox or radio in the appended row

  • useFieldArray not reconciling stale fields after an Activity subtree reconnects

  • useForm never reconciling when an Activity subtree is hidden on its first render

  • getFieldState not reading isValidating from the supplied form state

  • useFormState not re-subscribing when control changes

  • reset with keepValues leaving dirtyFields out of sync with isDirty

  • cloneObject not guarding Blob before instanceof